DN Forum project - development process and standards
Moderator: General Moderators
DN Forum project - development process and standards
Spinning off from the original subject thread - viewtopic.php?f=7&t=104474
I'm starting off a discussion on the development process and standards for an open-source forum community project that could possibly be used to power DN in the future. I'm writing this in the hopes the some of you show interest and sign abroad in order to move to more concrete parts.
What we need to address:
- Coding standards, including file formatting, naming conventions, comments and general style.
- Contribution format and moderation of contributions
- How to organize discussions and make decisions
- Organizing code structure (and possibly choosing a framework to base work on)
My take on those issues:
1. Coding standards
Personally I use the Zend Framework coding standards - http://framework.zend.com/manual/en/cod ... ndard.html, which are a derivation of the PEAR standards - http://pear.php.net/manual/en/standards.php. There are a lot of small variations, but generally it is considered the de-facto standard for PHP (at-least, the most widely accepted one).
Maintaining a consistent coding standard is essential for keeping the source code maintainable and portable between developers. Also, one of the objectives of the project is to create a package which can be used by the community, and in that case it's best to use the most commonly used standard.
2. Contribution format + moderation
In order to share the source code during development and retaining rollback capability, source code should be placed on an online source-versioning repository (such as SVN). There are several sites that host such repositories for open-source projects, such as google code and sourceforge.
Participating members would be given commit privileges to the repository. Commits should occur often to prevent difficult merges (those happen when there two developers submit modifications to the same piece of code), and be accompanied with meaningful messages detailing the changes committed.
Participating members should also review commits by the other members and we could have code-review sessions periodically (depending on the rate of progress).
3. Discussions and decisions
Design and implementation discussions should be held on each part of the project before we jump into programming. This is to ensure that everyone agrees on how things should work and how to implement them.
Ideally, every discussion will end with everyone agreeing across the board. We should make every effort possible to make it so, even if it requires some compromises. In the case that no such agreement could be reached, we should go with a majority vote to make decisions.
All discussions should be public and occur on the forums. Private communications on general issues is generally not helpful for the project. Everybody should be allowed to pitch in and discuss issues.
4. Organizing code structure
The coding standards chosen should dictate the code structure up to a point. In addition, we should decide how to organize library files (in case we're using external libraries) and how to segment the project to the disparate modules. I also recommend very highly to pick one of the major frameworks and base work on that - it will reduce development time very significantly, help enforce good practices across the board (such as MVC separation and other design patterns), and introduce a stable and well supported piece of code into the mix.
I'm voting for the Zend Framework since I am very familiar with it and overall highly satisfied with it, but I don't mind going with another established framework. This should be decided by a majority vote.
If you think there are more issues to discuss before starting, feel free to add those to the discussion.
I'm starting off a discussion on the development process and standards for an open-source forum community project that could possibly be used to power DN in the future. I'm writing this in the hopes the some of you show interest and sign abroad in order to move to more concrete parts.
What we need to address:
- Coding standards, including file formatting, naming conventions, comments and general style.
- Contribution format and moderation of contributions
- How to organize discussions and make decisions
- Organizing code structure (and possibly choosing a framework to base work on)
My take on those issues:
1. Coding standards
Personally I use the Zend Framework coding standards - http://framework.zend.com/manual/en/cod ... ndard.html, which are a derivation of the PEAR standards - http://pear.php.net/manual/en/standards.php. There are a lot of small variations, but generally it is considered the de-facto standard for PHP (at-least, the most widely accepted one).
Maintaining a consistent coding standard is essential for keeping the source code maintainable and portable between developers. Also, one of the objectives of the project is to create a package which can be used by the community, and in that case it's best to use the most commonly used standard.
2. Contribution format + moderation
In order to share the source code during development and retaining rollback capability, source code should be placed on an online source-versioning repository (such as SVN). There are several sites that host such repositories for open-source projects, such as google code and sourceforge.
Participating members would be given commit privileges to the repository. Commits should occur often to prevent difficult merges (those happen when there two developers submit modifications to the same piece of code), and be accompanied with meaningful messages detailing the changes committed.
Participating members should also review commits by the other members and we could have code-review sessions periodically (depending on the rate of progress).
3. Discussions and decisions
Design and implementation discussions should be held on each part of the project before we jump into programming. This is to ensure that everyone agrees on how things should work and how to implement them.
Ideally, every discussion will end with everyone agreeing across the board. We should make every effort possible to make it so, even if it requires some compromises. In the case that no such agreement could be reached, we should go with a majority vote to make decisions.
All discussions should be public and occur on the forums. Private communications on general issues is generally not helpful for the project. Everybody should be allowed to pitch in and discuss issues.
4. Organizing code structure
The coding standards chosen should dictate the code structure up to a point. In addition, we should decide how to organize library files (in case we're using external libraries) and how to segment the project to the disparate modules. I also recommend very highly to pick one of the major frameworks and base work on that - it will reduce development time very significantly, help enforce good practices across the board (such as MVC separation and other design patterns), and introduce a stable and well supported piece of code into the mix.
I'm voting for the Zend Framework since I am very familiar with it and overall highly satisfied with it, but I don't mind going with another established framework. This should be decided by a majority vote.
If you think there are more issues to discuss before starting, feel free to add those to the discussion.
Re: DN Forum project - development process and standards
Even though I'm unlikely to participate as an active developer, I'd like to note that I agree with you on all points, except 'commit often', maybe. Instead of committing often to the central repository it could be beneficial to use distributed version repository, where patches are pulled into 'official branch' by a release master(s) or project leader(s).
Re: DN Forum project - development process and standards
Sounds interesting, though I don't have any experience with distributed systems. From what I read, they somewhat encourage independent development and less co-operation between project members. But I'm willing to experiment on this if you care to elaborate or take charge of that part of the project (source code control).
I'll just add another note - I don't expect any particular project member to contribute consistently throughout the lifetime of the project (I probably can't either). Everyone should pick some area that they find interesting and devote their attention there (areas such as templating, security, performance, database, permissions and so forth). I do think though that this discussion is relevant for everyone.
I'll just add another note - I don't expect any particular project member to contribute consistently throughout the lifetime of the project (I probably can't either). Everyone should pick some area that they find interesting and devote their attention there (areas such as templating, security, performance, database, permissions and so forth). I do think though that this discussion is relevant for everyone.
- Jonah Bron
- DevNet Master
- Posts: 2764
- Joined: Thu Mar 15, 2007 6:28 pm
- Location: Redding, California
Re: DN Forum project - development process and standards
I like the standards you've presented. I've never used a framework before, so I can't really say there. As for the front end, I think we should definitely use the most recent standards (HTML5, CSS3). That will allow it to have it's full potential in functionality for the longest possible time. And yes, I know that HTML5 is not finished yet, and CSS3 is not globally supported, but this is a forum of web developers.
Theoretically, we all have the cutting edge in web standards. That's what we do.
I really like the idea of using AJAX for replying and editing.
(P.S. Ignore me, I have no idea what I'm talking about)
Theoretically, we all have the cutting edge in web standards. That's what we do.

I really like the idea of using AJAX for replying and editing.
(P.S. Ignore me, I have no idea what I'm talking about)
Re: DN Forum project - development process and standards
Oh hey, I just found this thread.
Yeah, I have never used a framework either
So I can't comment on that...
But yeah, I agree with everything else you've said.
Our numbers seem to be increasing
Yeah, I have never used a framework either

But yeah, I agree with everything else you've said.
Our numbers seem to be increasing

Re: DN Forum project - development process and standards
In my opinion using an existing MVC framework is a must for number of reasons, but I will skip the arguments until someone argue
I'm voting for Zend or Kohana (born as PHP 5 port of CodeIgniter) as a simpler and lighter alternative to Zend. I don't mind which one, since I have no real experience with either, but I would like to gather experience with both.
Completely agree with the overall organization.

I'm voting for Zend or Kohana (born as PHP 5 port of CodeIgniter) as a simpler and lighter alternative to Zend. I don't mind which one, since I have no real experience with either, but I would like to gather experience with both.
Completely agree with the overall organization.
Last edited by Darhazer on Mon Aug 24, 2009 3:20 pm, edited 1 time in total.
Re: DN Forum project - development process and standards
I argue againstDarhazer wrote:In my opinion using an existing MVC framework is a must for number of reasons, but I will skip the arguments until someone argue

Re: DN Forum project - development process and standards
* Developing a framework is time consuming and going trough the process of making design mistakes and redesigning... at least I tried few times and one of the reason I want to learn both Kohana and Zend is to have experience with more frameworks, giving me the chance to get more ideas and to learn from more mistakes (you know, smart people learn from their mistakes, wise people learn from mistakes of other people)jackpf wrote:I argue againstDarhazer wrote:In my opinion using an existing MVC framework is a must for number of reasons, but I will skip the arguments until someone argue
* If you pickup one of the mainstream frameworks, you'll get a documentation and probably examples and tutorials on the web. In this way if someone joins at later time, he will have documentation of the framework. Of course, if we are creating our framework, we will document it (something that we didn't manage to make in our company for last 2 years - to document our internal framework)
* There is a chance some of the developers, as well as developers who join later, already to know the framework. For those who don't know it, it will be as easy to learn it as if we develop our own (or maybe easier if the documentation is better) but they will add an existing framework in their knowledge, which is used in other projects and/or companies.
* Generally I'm for the "One project - one design" concept, because every project have a specific needs. On the other hand, framework is not the entire design of the software, the code will be designed and framework just handles the common task as user input validation (the data format one, not the one in the model), the web-app flow (forms, preserving the submitted data and display it again on validation errors), the data / presentation abstraction and so on.
To summarize, in my opinion creating a framework is a waste of time, if the goal is not the framework itself, but an application that use it, and if not all of those conditions are met:
* the project is big enough to have own framework
* there is someone experienced enough in software architecture, to design a framework
* and there is at least one reason not to use an existing framework, then 'we can develop own one'
Re: DN Forum project - development process and standards
Fair points...
I just think that using a framework might alienate people who aren't familiar with it. If we devloped our own, together, we'd all know exactly what everything does.
But...if the majority of people want to use a framework...then who am I to resist
I guess I'm just used to my own methods of coding my stuff from scratch.
Oh yeah, one other thing...I'm not into all that "using the same line for opening parenthesis" mojo :p New line ftw. Could be a problem there...?
I just think that using a framework might alienate people who aren't familiar with it. If we devloped our own, together, we'd all know exactly what everything does.
But...if the majority of people want to use a framework...then who am I to resist

I guess I'm just used to my own methods of coding my stuff from scratch.
Oh yeah, one other thing...I'm not into all that "using the same line for opening parenthesis" mojo :p New line ftw. Could be a problem there...?
Re: DN Forum project - development process and standards
Well, some would alienated if we were forced to start everything from scratch. this would probably mean the project will be three to four times as long as otherwise. and there the other benefits, as I've said in the beginning and Darhazer mentioned too.I just think that using a framework might alienate people who aren't familiar with it
Everybody not familiar with a framework should consider this a great chance to learn how to use one, and especially since he'll be working with people with a lot of experience with it. you get to find out what the hoopla is all about

Re: DN Forum project - development process and standards
Haha yeah. Sure, why not. I vote for zend then. After all...isn't it made by the same guys that made php?0pytrin wrote: you get to find out what the hoopla is all about
- Christopher
- Site Administrator
- Posts: 13592
- Joined: Wed Aug 25, 2004 7:54 pm
- Location: New York, NY, US
Re: DN Forum project - development process and standards
Zend !== PHP Group (who are the guys and gals who make PHP)jackpf wrote:After all...isn't it made by the same guys that made php?0
(#10850)
Re: DN Forum project - development process and standards
Right, but they do contribute to the source significantly. Though those are generally different guys than those who contribute to the framework.
What about you chris? are you interested in contributing to this project?
What about you chris? are you interested in contributing to this project?
Re: DN Forum project - development process and standards
How would Zend benefit this project over symfony? How would Zend decrease development time over symfony?
Re: DN Forum project - development process and standards
Oh right...I thought they were the same people since they...have the same name and all 
