Styles du code
Ce document décrit les bonnes pratiques concernant le style du code, la manière de nommer les identificateurs, etc.
A partir de Qubes 6.1 un outil de vérification du style, "Gabelou", est actif lors des compilations.
Règles sur les tabulations:
- la tabulation de base est de 3 espaces
- le style de tabulation elastique est recommandé
Règles sur les identifiants
- les identifiants doivent être en camelCase ou en PascalCase
- camelCase: "monIdentifant", sous-mots débutant par une majuscule sauf le premier
- PascalCase: "MonIdentifiant", sous-mots débutant par une majuscule même le premier
- les noms de variables locales et des paramètres sont en camelCase, et débutent donc par une minuscule
- les noms de fonctions, types, propriétés, unités etc. sont en PascalCase, et débutent donc par une majuscule
- les noms de constantes, soit:
- débutent par un 'c' minuscule suivi de PascalCase
- sont en ALL_CAPS au moins jusqu'au premier underscore '_', et en PascalCase par la suite
- les noms de variables de classe ou de variables globales débutent par un 'v' minuscule suivi de PascalCase
- les noms de types débutent par un 'T' suivi de PascalCase
- seuls les types sont autorisés à débuter par un 'T'
- le 'T' peut être omis pour les types valeurs (Complex, Matrix...), les énumérés et les classes statiques
- les noms de champs privés ou protégés débutent par un 'F' suivi de PascalCase
Mise en forme
- pour les expressions couvrant plusieurs lignes, les opérateurs doivent être en début de ligne et non en fin de ligne (conformément aux notations mathématiques et comptables)
var maVariable := uneLongueExpression
+ surPlusieurs
+ lignes;
+ surPlusieurs
+ lignes;
- begin/end sont en ligne avec then/else
if monTest then begin
..instructions
end else begin
...autres instructions
end;
..instructions
end else begin
...autres instructions
end;
- case/of/else
case valeur of
valeur1 : begin
..instructions
end;
valeur2 : instructionCourte;
else
...autres instructions
end;
valeur1 : begin
..instructions
end;
valeur2 : instructionCourte;
else
...autres instructions
end;