Coding Style

From Mineserver Wiki

(Difference between revisions)
Jump to: navigation, search
Line 4: Line 4:
* '''Class names''': Camelcase, starting with uppercase letter, e.g.: '''FurnaceManager'''
* '''Class names''': Camelcase, starting with uppercase letter, e.g.: '''FurnaceManager'''
* '''Variable and method names''': Camelcase, starting with lowercase letter, e.g.: '''updateWorld()''', '''userCommands'''.
* '''Variable and method names''': Camelcase, starting with lowercase letter, e.g.: '''updateWorld()''', '''userCommands'''.
 +
** '''Pointer variables''': Use '''Foo* bar''' instead of '''Foo *bar'''
** Using short names for loop variables is ok, e.g. '''i''', '''j'''. Otherwise use descriptive names and don't use abbreviations all over the place, to make the code more readable.
** Using short names for loop variables is ok, e.g. '''i''', '''j'''. Otherwise use descriptive names and don't use abbreviations all over the place, to make the code more readable.
* '''Inline methods''': Keep them short (max 10-15 lines at most).
* '''Inline methods''': Keep them short (max 10-15 lines at most).

Revision as of 22:29, 6 December 2010

This is a suggestion for a coding style to be used consistently accross Mineserver's source code.

  • Indentation: 2 spaces
  • Class names: Camelcase, starting with uppercase letter, e.g.: FurnaceManager
  • Variable and method names: Camelcase, starting with lowercase letter, e.g.: updateWorld(), userCommands.
    • Pointer variables: Use Foo* bar instead of Foo *bar
    • Using short names for loop variables is ok, e.g. i, j. Otherwise use descriptive names and don't use abbreviations all over the place, to make the code more readable.
  • Inline methods: Keep them short (max 10-15 lines at most).
  • Documentation: Use javadoc-style documentation for at least all public methods. Example:
   /**
    * The foo() method. Does some fooish stuff, yo!
    * @param bar Bar instance to be used in foo().
    * @return An instance of Baz that does something fantastic!
    */
    Baz* Foo::foo(Bar* bar);
    • Note: Documentation should go in to the header file.
  • Class definitions: