Coding Style

From Mineserver Wiki
Revision as of 22:32, 6 December 2010 by Bakkdoor (talk | contribs)
Jump to navigationJump to search

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: Put public methods at the top of the definition. They're usually the most interesting part from a user's point of view. Private stuff at the bottom.
   class Foo {
     public:
     Foo();
     ~Foo();
   
     /**
      * 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(Bar* bar);
     
     private:
     /* private instance vars etc go here.*/
   }
  • Namespaces: We probably should use them.