====== Convention de codage Actionaz ====== //Version 1.0 - By Jonathan Mercier-Ganady// Avant de contribuer au projet, veuillez prendre connaissance de cette page. La convention utilisée par Actionaz est très semblable à la [[http://qt-project.org/wiki/Qt_Coding_Style|convention de codage Qt]]. Seules les différences avec le standard Qt sont décrits dans cette page. ===== Règles générales ===== - Ne pas oublier //tr()// autour des chaînes concernées par la traduction. - Commiter souvent. - Coder en C++, pas en C. - Ne jamais dupliquer du code, c'est le signe d'un code peu efficient : si le cas se produit, prenez l'air et repensez la structure de votre code. - Adaptez vous au projet auquel vous contribuez. ===== Commentaires ===== //[A traduire]// Only comment when needed, usually naming the variables, classes and methods correctly should be sufficient for every developer to understand what the code does. - Comment each complex algorithm. - Don't over-comment. // Wrong // Returns: the value of X int getX(); ===== Attributs de classe ===== //[A traduire]// - Class attributes are always private, use getters and setters to access them. - Class attributes start with a lower m. class MyClass { private: int mMyValue; }; ===== Méthodes d'affectation et de récupération des attributs ===== [NdT] les mots //getter// et //setter// ont été conservés //[A traduire]// - Setters start with “set”. - Getters don't start with “get”. - Getters are const. class MyClass { public: int myValue() const { return mMyValue; } void setMyValue (int myValue) { mMyValue = myValue; } private: int mMyValue; }; ===== Indentation ===== //[A traduire]// - 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. - The tabulation and the indentation size should be set to **4**, warning : this is not the default setting in QtCreator ! ===== Declaration de variables ===== //[A traduire]// - 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... } - Classes doesn't start with any special letter. ===== Accolades ===== //[A traduire]// - The correct way to write an if statement : //Correct if(foo) { // do stuff here } //Wrong if (foo) { // do stuff here } - 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() ; } - Never use C-style casts. // Wrong float a = 4.2f; int b = (int)a; // Correct float a = 4.2f; int b = static_cast(a); ===== Blocs liés à une instructtion switch ===== //[A traduire]// - 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 ===== Retour à la ligne ===== //[A traduire]// - No numerical limit to the length of a line, just keep it not “too long”. ---- Retour à la page : [[fr:devel|Contribuer à Actionaz]] Autres langages pour cette page : [[en:devel:coding-style|(en)]]