DN Forum project - development process and standards

We know you have an opinion on how things should be run around here. These are suggestions for the forums, and the website.This forum is not a place to ask for suggestions to your own coding (or otherwise) problems.

Moderator: General Moderators

User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

DN Forum project - development process and standards

Post by Eran »

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.
User avatar
Weirdan
Moderator
Posts: 5978
Joined: Mon Nov 03, 2003 6:13 pm
Location: Odessa, Ukraine

Re: DN Forum project - development process and standards

Post by Weirdan »

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).
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: DN Forum project - development process and standards

Post by Eran »

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.
User avatar
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

Post by Jonah Bron »

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. 8)

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)
User avatar
jackpf
DevNet Resident
Posts: 2119
Joined: Sun Feb 15, 2009 7:22 pm
Location: Ipswich, UK

Re: DN Forum project - development process and standards

Post by jackpf »

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 :)
User avatar
Darhazer
DevNet Resident
Posts: 1011
Joined: Thu May 14, 2009 3:00 pm
Location: HellCity, Bulgaria

Re: DN Forum project - development process and standards

Post by Darhazer »

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.
Last edited by Darhazer on Mon Aug 24, 2009 3:20 pm, edited 1 time in total.
User avatar
jackpf
DevNet Resident
Posts: 2119
Joined: Sun Feb 15, 2009 7:22 pm
Location: Ipswich, UK

Re: DN Forum project - development process and standards

Post by jackpf »

Darhazer 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 :)
I argue against :P
User avatar
Darhazer
DevNet Resident
Posts: 1011
Joined: Thu May 14, 2009 3:00 pm
Location: HellCity, Bulgaria

Re: DN Forum project - development process and standards

Post by Darhazer »

jackpf wrote:
Darhazer 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 :)
I argue against :P
* 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)
* 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'
User avatar
jackpf
DevNet Resident
Posts: 2119
Joined: Sun Feb 15, 2009 7:22 pm
Location: Ipswich, UK

Re: DN Forum project - development process and standards

Post by jackpf »

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 :P

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...?
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: DN Forum project - development process and standards

Post by Eran »

I just think that using a framework might alienate people who aren't familiar with it
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.

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 ;)
User avatar
jackpf
DevNet Resident
Posts: 2119
Joined: Sun Feb 15, 2009 7:22 pm
Location: Ipswich, UK

Re: DN Forum project - development process and standards

Post by jackpf »

pytrin wrote: you get to find out what the hoopla is all about ;)
Haha yeah. Sure, why not. I vote for zend then. After all...isn't it made by the same guys that made php?0
User avatar
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

Post by Christopher »

jackpf wrote:After all...isn't it made by the same guys that made php?0
Zend !== PHP Group (who are the guys and gals who make PHP)
(#10850)
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: DN Forum project - development process and standards

Post by Eran »

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?
User avatar
Benjamin
Site Administrator
Posts: 6896
Joined: Sun May 19, 2002 10:24 pm

Re: DN Forum project - development process and standards

Post by Benjamin »

How would Zend benefit this project over symfony? How would Zend decrease development time over symfony?
User avatar
jackpf
DevNet Resident
Posts: 2119
Joined: Sun Feb 15, 2009 7:22 pm
Location: Ipswich, UK

Re: DN Forum project - development process and standards

Post by jackpf »

Oh right...I thought they were the same people since they...have the same name and all :P
Post Reply