Skip to content

Des normes de développement

Gabsi edited this page May 5, 2015 · 6 revisions

Le but de cette page est de proposer un ensemble de conventions et de règles pour faciliter la compréhension et donc la maintenance du code.

Ces règles ne sont pas à suivre explicitement à la lettre : elles sont uniquement présentées pour inciter les développeurs à définir et à utiliser des règles dans la réalisation du code surtout dans le cadre d'un travail en équipe. Les règles proposées sont celles couramment utilisées mais elles ne sont pas des règles absolues.

La définition de conventions et de règles est importante pour plusieurs raisons :

  • La majorité du temps passé à coder est consacrée à la maintenance évolutive et corrective d'une application
  • Ce n'est pas toujours, voire rarement, l'auteur du code qui effectue ces maintenances
  • ces règles facilitent la lisibilité et donc la compréhension du code

Les Classes et interfaces

  • Tout nom de classe ou d'interface doit commencer par une Majuscule suivie de minuscules. Si ce nom est constitué de plusieurs mots, on utilisera une majuscule pour chaque nouveau mot.
  • L'usage du caractère tiret bas est proscrit car fatiguant la vision.
  • Il faut éviter d'utiliser dans le nom des caractères accentués qui ne sont pas toujours utilisables par tous les systèmes d'exploitation.
  • Le nom de la classe ou interface doit être identique au nom du fichier dans laquelle elle déclaré.
  • Le nom d'une classe peut finir par impl pour la distinguer d'une interface qu'elle implémente.
  • Les classes qui définissent des exceptions doivent finir par Exception.
  • Un fichier ne devrait pas contenir plus de 2 000 lignes de code.
  • Des interfaces ou classes privées ayant une relation avec la classe publique peuvent être rassemblées dans un même fichier. Dans ce cas, la classe publique doit être la première dans le fichier.

Ex :

public classe calculatrice {=> KO
public classe Claculatrice {=> OK

Les méthodes

  • Les noms des attribues, méthodes et classes doivent être significatif. Leur nom devrait contenir un verbe.
  • La première lettre est obligatoirement une minuscule.
  • Si le nom est composé de plusieurs mots, la première lettre de chaque mot doit être en majuscule sans mettre de caractère underscore '_'
  • Les méthodes pour obtenir la valeur d'un champ doivent commencer par get suivi du nom du champ.
  • Les méthodes pour mettre à jour la valeur d'un champ doivent commencer par set suivi du nom du champ
  • Les méthodes pour créer des objets (factory) devraient commencer par new ou create
  • Les méthodes de conversion devraient commencer par to suivi par le nom de la classe renvoyée à la suite de la conversion

Ex :

Sommer() => KO
sommer() => OK
xyz()  => KO
sommation() => OK
GetValeurABSOLU	=> KO
getValeurAbsolu() => OK 

Les attributs

  • Les noms des attribues doivent être significatif.
  • La première lettre est obligatoirement une minuscule et ne devrait pas être un caractère dollar '$' ou underscore '_' même si ceux-ci sont autorisés.
  • Pour les variables d'instances non publiques, certains recommandent de commencer par un underscore pour éviter la confusion avec le nom d'une variable fournie en paramètre d'une méthode tel que le setter.
  • Si le nom est composé de plusieurs mots, la première lettre de chaque mot doit être en majuscule, ne pas mettre de caractère underscore '_'.
  • Les noms de variables composés d'un seul caractère doivent être évités sauf pour des variables provisoires (index d'une boucle).

Les constants

  • Toujours en majuscules, chaque mots est séparés par un underscore '_'.
  • Ces variables doivent obligatoirement être initialisées lors de leur déclaration.

Ex :

static final int VAL_MIN = 0;