I second using Git/GitHub.
Luc Lieber wrote: |
---|
* A standardized (header) commenting style
* A standard forcing the use of the RAII idiom
* A standard forbidding the use of deprecated methods
* A list of platforms to support
* A list of compilers to support ( including which C++ standard [C99, C03, C1x])
* A list of libraries that may be utilized
* A single configuration header for each project (each contributor doesn't need their own)
* A way of peer-reviewing code before it's committed. |
1. Good idea. I nominate Doxygen comments. Personally I always use C-style comments but I don't think it matters if someone wants to use only C++-style comments, or mix the two. That doesn't need to be standardized.
2. Fine by me.
3. Yes.
4. Agreed, though I think it would be most beneficial if we strived to support all platforms. At the very least we should support Windows, Mac OS and Linux; those make up near-enough 100% of the market.
5. Agreed. I nominate g++ and vc++ as those seem to be the most common. I don't know about vc++ but the following options should be included for g++ IMO: "-Wall -Wextra -pedantic". As for the standard, I guess whatever the current most recent standard that is fully supported by all of our compilers.
6. Agreed
7. This is an excellent idea. We could set up a simple website where people can submit patches, and they only get included if, say, 3 senior users give them a positive review. I could probably write the back-end code (handling logging in and such) but I suck at web design, so if someone better wants to volunteer their talents, that would be good.
I also recommend we standardise coding style. I don't know whether it is a better idea to standardise coding style for the whole project (everyone uses Allman style or K&R style or whatever), or just within files (copy the style of the file's original author). I'm in favour of the former, with Allman style (this is the style used in ANSI documentation so it makes sense to use) or K&R/Linux style (I prefer this but Allman style is a more logical choice).
Also, I think we should have our source tree properly organised. I hate opening the source of a program to find a bunch of source and header files with no structure. The project directory should have a "src" (or "Src" or "Source") folder, an "include" (or "Include") folder and a "bin" (or "Bin" or "Binaries" or "Release") folder.
Another thing that is important but hasn't been mentioned is that everything should be in English. I usually use US English spelling (e.g.
struct color
) for code and British English for comments (e.g.
/* Represents a colour (RGBA) */
). I propose that we use US English for code and whatever dialect of English you want for comments. Slang and jargon should be avoided, though.