Difference between revisions of "Coding standard"

From OdaWiki
(Overview)
(Requirements)
Line 2: Line 2:
 
Odamex relies on a coding standard to ensure continuity, this reduces bugs and provides easy readability of the code.
 
Odamex relies on a coding standard to ensure continuity, this reduces bugs and provides easy readability of the code.
  
==Requirements==
+
=Requirements=
  
Rules:
 
 
* Add a [[test]] for every change
 
* Add a [[test]] for every change
 
* Do not fix code that already works
 
* Do not fix code that already works

Revision as of 14:14, 5 May 2008

Overview

Odamex relies on a coding standard to ensure continuity, this reduces bugs and provides easy readability of the code.

Requirements

  • Add a test for every change
  • Do not fix code that already works
  • Make logical changes in separate patches

Formatting

  • If creating a new file, include a GPL header at the top of it, as seen in other files.
  • 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)
  • Indentations to be of 1 tab character, using 4 space width tabs
  • Be sure your editor/IDE's EOL mode is LF, not CRLF or CR
  • 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 reasonable screen resolution)

Code

Things you should definitely AVOID in your code:

  • Precompiler 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)
  • C style strings. (replace them with C++ types where it is safe to do so)
  • goto

What you should strive for:

  • Clarity of code
  • Defensive and secure coding practices
  • Maintain traditional naming conventions, for consistency

See Also

  • none

External Links