-
Notifications
You must be signed in to change notification settings - Fork 1
Conventions de nommage pour le développement
NORME DE CODAGE POUR CLIENT LOURD
Ce document a pour but de décrire les principes de codages utilisés dans ce projet.
Ce document est valable pour le langage C#.
Excepté pour la BDD où le nom des tables et champs sont en français, le code et les commentaires de tous les projets sont écris en anglais ! Les noms des variables, des fonctions, etc., sont tous définis en anglais !
Il sera préférable également d'écrire les commits en anglais.
Les classes commencent toujours par une majuscule. Chaque nouveau mot commence également par une majuscule. Le reste des lettres qui composent chaque mot est écrit en minuscules.
public class MyClass : MySuperClass
{
}
Le nom des méthodes commence toujours par une majuscule. Chaque mot qui suit est composé d’une majuscule. Toutes les autres lettres qui composent les mots sont des minuscules. Seules les fonctions correspondant à des événements (clics sur un bouton, chargement d'un formulaire) peuvent commencer par une minuscule.
private void TestAndWrite(CommonCard card)
{…}
private void btnBackToProject_Click(object sender, EventArgs e)
{…}
Les variables déclarées en tant que constantes sont écrites en majuscule, avec éventuellement des soulignés entre chaque mot.
public static final int MY_CONST = 13;
Les paramètres reçus d’une fonction ne sont pas distingués particulièrement. public void MyFunc(int param1, int param2) {…}
Les variables membres d’une classe ne sont toujours préfixés d’un « _ ».
public class MyClass : AnotherClass
{
int _myVar = 0;
}
Les attributs privés débutent toujours par une minuscule (« camelCase »).
public void MyFunc()
{
int myVar = 0; // private variable
MyClass myClass = MyClass(); // instanciation of a private object
MySingletonClass mySingleton = MySingleton.GetInstance(); // access to a private singleton object
}
Les attributs publics (« propriétés » de classe) commencent toujours par une majuscule (il est à noter que l’accesseur get/set automatise ce procédé).
public class MyClass : AnotherClass
{
int _myVar = 0; // private variable
public int MyVar {get{…}set{…}};
public MySdClass mySdClass = mySdClass (); // instanciation of a public object
}
Les préfixes suivants doivent être ajoutés aux noms des ressources :
Préfixes / Contrôle visuel
- Btn / Bouton
- Tbx / TextBox
- Lbl / Label
- Bmp / Image (bitmap)
- Sc / Scrollbar
- Rb / Bouton radio
- Ckbx / Checkbox
- Form / Formulaire
- Cbx / Combobox
- Gbx / Groupbox
- Pnl / Panel ...
L’indentation est un principe fondamental de la programmation et n’est pas uniquement imposée par cette convention. Son caractère obligatoire ne fait ici aucun doute.
if(toto == 2)
{
}
La première instruction du bloc est décalée et l’indentation générale est deux (ou quatre) espaces.
if(toto == 2)
{
déclaration;
instruction;
instruction;
if(titi == 1)
{
instruction;
}
}
Les fichiers contenant les classes C# (« .cs ») suivent la nomenclature suivante :
/=====================================================================
- Class:
- Version/date: <x.y.z>2 <yyyy.mm.dd>
- Description: <”This class…”>
- Specificities: <e.g. “This class is a singleton”>
- Authors: <LAST_NAME>
- Copyright: HES-SO/HE-Arc, all rights reserved
=====================================================================/
Les constructeurs apparaîtront en premier dans le fichier, suivis des destructeurs, des fonctions d’initialisation et enfin des autres fonctions.
Toutes les fonctions et propriétés implémentées sont précédées d'un tag XML expliquant ce qu'elle fait.
/// <summary>
/// This ...
/// </summary>
/// <remarks>The...<c>blab bla bla</c></remarks>
private void TestAndWrite(CommonCard card)
{
...
}