User Tools

Site Tools


en:devel:coding-style

Actionaz coding style

Version 1.0 - By Jonathan Mercier-Ganady

Before contributing to the project please read the following page.

The Actionaz coding style is almost the same as the coding style of Qt.

Only the differences with the Qt coding style are shown.

General rules

  1. Remember to add tr() around text that can be translated.
  2. Commit often,
  3. Syntax when fixing a Redmine declared bug : [explanation] fixes bug #[bug number here]
  4. Code in C++, not in C.
  5. Never copy & paste code, if you want to do it that means that something is wrong : re-think the code structure.
  6. Adapt yourself to the project for which you are developing.

Comments

Only comment when needed, usually naming the variables, classes and methods correctly should be sufficient for every developer to understand what the code does.

  1. Comment each complex algorithm.
  2. Don't over-comment.
    // Wrong
    // Returns: the value of X
    int getX();

Class attributes

  1. Class attributes are always private, use getters and setters to access them.
  2. Class attributes start with a lower m.
    class MyClass
    {
        private:
        int mMyValue;
    };

Setters and getters

  1. Setters start with “set”.
  2. Getters don't start with “get”.
  3. Getters are const.
    class MyClass
    {
        public:
            int myValue() const { return mMyValue; }
            void setMyValue (int myValue) { mMyValue = myValue; }
        private:
            int mMyValue;
    };

Indentation

  1. Indentation is made with tabulations, not spaces. The tabulation character is designed for that. Spaces are made to separate words, so using spaces to indent in 2010+ with modern editors makes no sense.
  2. The tabulation and the indentation size should be set to 4, warning : this is not the default setting in QtCreator !

Declaring variables

  1. Classes doesn't start with any special letter.
  2. Variables are declared when used, not at the start of a block like in C.
    // Wrong
    int actionIndex;
    
    for(int i = 0; i < 5; ++i)
    {
        actionIndex = i * 2;
        // actionIndex is used here...
    }
    
    // Correct
    for(int i = 0; i < 5; ++i)
    {
        int actionIndex = i * 2;
        // actionIndex is used here...
    }

Braces

  1. The correct way to write an if statement :
    //Correct
    if(foo)
    {
        // do stuff here
    }
    
    //Wrong
    if (foo) {
        // do stuff here
    }
  2. The following notation is accepted when the statement is not too complex, and for one level only.
    //Wrong
    if(foo)
        if(bar)
            doSomething();
    
    //Correct
    if(foo)
    {
        if(bar)
            doSomething();
    }
  3. Never use C-style casts.
    // Wrong
    float a = 4.2f;
    int b = (int)a;
    
    // Correct
    float a = 4.2f;
    int b = static_cast<int>(a);

Switch statements

  1. Every case does not have to have a break (or return) statement at the end or a comment to indicate that there’s intentionally no break

Line breaks

  1. No numerical limit to the length of a line, just keep it not “too long”.

Go back to the page : Contribute to Actionaz

Other languages for this page : (fr)

en/devel/coding-style.txt · Last modified: 2016/10/09 11:10 (external edit)