11.3 Convention de nommage

Dans cette section, nous abordons les conventions de nommage en Java. À quoi servent-elles ? À garantir que tout le monde code de façon homogène, pour qu'un développeur reprenant le code d'un autre ne soit pas dépaysé. Trois raisons fondamentales justifient ces règles : 80 % de la vie d'une application, c'est la maintenance ; le code change rarement de mains sans transition ; une convention partagée améliore la lisibilité et accélère la compréhension d'un nouveau venu.

Les règles essentielles

Commençons par les packages. Le nom est toujours en minuscules et commence souvent par un nom de domaine inversé pour garantir l'unicité (par exemple com.monsite.zero.monprojet). Cela évite les collisions entre classes portant le même nom dans des projets différents.

Les classes et interfaces suivent la convention PascalCase : chaque mot commence par une majuscule, y compris le premier (BaseListAdapter, UserRepository). On évite les abréviations cryptiques et on privilégie des noms qui décrivent clairement le rôle, sans devenir excessivement longs.

Les méthodes et les variables utilisent la convention camelCase : première lettre en minuscule, puis chaque mot suivant commence par une majuscule. Une méthode commence généralement par un verbe d'action (fermerLaFenetre, changeColor). On trouve souvent les préfixes classiques :

  • get / set pour les accesseurs et modificateurs d'une variable d'instance (par exemple getNom, setNom) ;
  • add / remove pour ajouter ou retirer un élément (addUser, removeAll) ;
  • is / has pour des méthodes booléennes (isValid, hasChildren).

Les variables suivent la même règle camelCase et restent courtes mais explicites. Les variables d'un seul caractère sont à réserver à un usage temporaire (compteurs i, j dans une boucle, ou x, y pour des coordonnées). Pour le reste, on préfère taille, nbItems, userName, etc.

Enfin, les constantes (static final) s'écrivent en MAJUSCULES, les mots séparés par des underscores (MAX_RETRY_ATTEMPTS, DEFAULT_TIMEOUT_MS). En résumé, ces conventions facilitent votre travail et celui des développeurs qui vous succèderont. À bientôt dans la prochaine.

En résumé

Cette leçon explique l'importance des conventions de nommage en Java pour assurer la maintenabilité et la lisibilité du code. Les conventions permettent à tout développeur de comprendre rapidement la structure et l'intention du code, même plusieurs années après son écriture initiale. La leçon détaille les règles spécifiques pour nommer les packages (minuscules avec domaine), les classes et interfaces (PascalCase), les méthodes (camelCase avec verbes d'action), les variables (camelCase court et clair) et les constantes (MAJUSCULES avec underscores).

Points clés

  • Les conventions de nommage assurent la maintenabilité : 80% de la vie d'une application consiste en maintenance, et les conventions garantissent que le code reste compréhensible même après les changements de développeurs.
  • Hiérarchie de nommage en Java : packages en minuscules avec domaine (ex: com.exemple.projet), classes en PascalCase, méthodes en camelCase avec verbes d'action (get, set, add, remove), variables en camelCase, constantes en MAJUSCULES_AVEC_UNDERSCORES.
  • Préférer des noms explicites plutôt que des abréviations : les noms descriptifs facilitent la compréhension et réduisent la charge cognitive lors de la lecture du code.
  • Les accesseurs (getters) et modificateurs (setters) suivent une convention claire : get ou set suivi du nom de la variable pour accéder ou modifier ses propriétés sans toucher directement à celle-ci.
  • Les variables doivent commencer par une lettre (a-z), être courtes et claires, en évitant les caractères spéciaux ou les usages temporaires mal documentés.
  • Respecter les conventions adoptées par l'entreprise ou l'équipe : cela facilite l'onboarding des nouveaux développeurs et assure une compréhension mutuelle du code.

Questions fréquentes

Pourquoi les packages doivent-ils être en minuscules et contenir un nom de domaine ?

Cela permet d'éviter les conflits entre classes de même nom provenant de différentes sources. L'ajout du domaine (ex: com.siteduzero.projet) crée une hiérarchie unique et facilite l'organisation du code à grande échelle.

Quelle est la différence entre les conventions de nommage pour les méthodes et les variables ?

Les deux utilisent camelCase, mais les méthodes contiennent généralement un verbe d'action (getVariable, setVariable, addElement, remove) tandis que les variables sont simplement nommées de manière descriptive (variable, taille, compteur).

Comment nommer correctement une constante en Java ?

Les constantes (variables static final) doivent être écrites entièrement en MAJUSCULES avec les mots séparés par des underscores, par exemple: TAILLE_MAXIMALE, VALEUR_PAR_DEFAUT.