Difference between revisions of "Coding standard"
From OdaWiki
Line 23: | Line 23: | ||
===Code=== | ===Code=== | ||
− | Things you should definitely | + | Things you should definitely AVOID in your code: |
− | + | ||
* GOTO's. (any sane programmer would not use these anyway) | * GOTO's. (any sane programmer would not use these anyway) | ||
* Macros. | * Macros. | ||
Line 30: | Line 29: | ||
* Variants. (tagged unions) - they can present a performance problem. | * Variants. (tagged unions) - they can present a performance problem. | ||
* Magic numbers. (use #define or const in your code for fixed numbers, at the top of files) | * Magic numbers. (use #define or const in your code for fixed numbers, at the top of files) | ||
+ | * Hungarian notation. (just plan evil) |
Revision as of 01:45, 27 October 2006
Overview
Odamex relies on a coding standard to help keep consistency between subprojects, this also helps things like reduce bugs and also provides easy readability of the code.
Some of the existing doom code in Odamex breaks these guidelines, which is exempt, unless you want to rewrite it!
General Requirements
This is a list of general things that must be adhered to when you are:
- An Odamex developer.
- A patch submitter.
Formatting
- If creating a new file, include a GPL header at the top of it, as seen in other files.
- Code layout. (ANSI is preferable)
- Descriptive comments.
- Comments of reasonable size. (not too big and not too small)
- Comment formatting. (in c/c++, either // for 1 liners or /* */ for multiple lines)
- Indentation to be of 4 SPACES, NOT Tab characters. (some editors have a feature which turns tab characters into spaces, if your editor does not, a link to a utility can be found at the end of this page that does this.)
- 80 line character limit, for devs with text-based editors.
- if you can, limit functions to a maximum size (like the amount that would fit on a monitor with a reasonably screen resolution)
Code
Things you should definitely AVOID in your code:
- GOTO's. (any sane programmer would not use these anyway)
- Macros.
- Global variables. (they can create problems elsewhere in code)
- Variants. (tagged unions) - they can present a performance problem.
- Magic numbers. (use #define or const in your code for fixed numbers, at the top of files)
- Hungarian notation. (just plan evil)