W3docs

Conventions de codage Java

Conventions Java standard — formatage, style des accolades, longueur des lignes et guides de style reconnus.

Les conventions de codage sont les règles partagées qui font paraître le code Java comme s'il avait été écrit par une seule personne, même lorsqu'une équipe de cinquante développeurs y touche. Elles couvrent le nommage, l'indentation, le placement des accolades, la longueur des lignes et la structure des fichiers — aucun de ces éléments n'intéresse le compilateur, mais tous décident si le prochain lecteur (souvent vous-même, des mois plus tard) peut parcourir une méthode en quelques secondes ou doit la décoder. Java possède des conventions particulièrement solides car elles ont été publiées tôt, dans les Code Conventions for the Java Programming Language originales de Sun, et elles sont restées remarquablement stables depuis.

Pourquoi les conventions importent plus que le compilateur

La JVM exécute int X=1;if(X>0){return"a";} exactement aussi vite que du code bien formaté. Les conventions existent pour les humains : le code est lu bien plus souvent qu'il n'est écrit, et un style cohérent supprime une couche de friction à chaque lecture. Un deuxième avantage pratique est la propreté des diffs — lorsque tout le monde formate de la même façon, un diff de contrôle de version montre de vraies modifications logiques plutôt que du bruit de reformatage. La plupart des équipes appliquent un style unique automatiquement (avec un formateur) précisément pour que le style cesse d'être un sujet de discussion lors des revues de code.

Nommage : la convention que vous utilisez à chaque ligne

Les noms portent presque toute la signification d'un programme, et les règles de nommage Java sont presque universelles dans l'écosystème :

ÉlémentConventionExemple
Classe / interface / enumPascalCase, substantifOrderService, HttpClient
MéthodecamelCase, phrase verbaleparseDate, isEmpty
Champ / variable localecamelCase, substantifretryCount, userName
Constante (static final)UPPER_SNAKE_CASEMAX_RETRIES, DEFAULT_PORT
Paramètre de typelettre majuscule uniqueT, K, V, E
Packagetout en minuscules, pointécom.example.billing
public class InvoiceCalculator {        // PascalCase class
  private static final int MAX_ITEMS = 100;  // UPPER_SNAKE_CASE constant
  private int lineCount;                 // camelCase field

  public boolean isOverLimit() {         // camelCase verb, boolean reads as a question
    return lineCount > MAX_ITEMS;
  }
}

Évitez les abréviations qui ne sont pas des standards du secteur (accelerationTime, pas accTime), et faites en sorte que la longueur d'un nom corresponde à sa portée — un indice de boucle peut être i, mais un champ qui vit toute la durée de vie d'un objet mérite un mot complet.

Formatage : accolades, indentation et longueur des lignes

Java utilise massivement le style d'accolades K&R : l'accolade ouvrante se trouve sur la même ligne que la déclaration, et l'accolade fermante s'aligne sous le début de cette instruction. L'indentation standard est de 4 espaces (jamais de tabulations dans les guides officiels), et les lignes sont maintenues à une largeur raisonnable — la limite classique était de 80 colonnes ; les guides modernes comme celui de Google utilisent 100.

// K&R: opening brace on the same line, always use braces
if (user.isActive()) {
  sendWelcome(user);
} else {
  queueReminder(user);
}

// Even a one-line body gets braces — it prevents the classic "dangling statement" bug
for (Order order : orders) {
  total += order.amount();
}

Quelques règles qui évitent les commentaires de revue les plus courants : une instruction par ligne, une ligne vide entre les méthodes, un espace après les mots-clés (if (, pas if(), et pas d'espaces en fin de ligne.

Guides de style reconnus

Vous inventez rarement des conventions de toutes pièces — vous adoptez un guide publié et laissez un outil l'appliquer :

GuideIndentationLargeur de ligneNotes
Oracle/Sun Code Conventions4 espaces80L'original ; fondateur mais daté
Google Java Style Guide2 espaces100Largement adopté ; soutenu par l'outil google-java-format
Android (AOSP)4 espaces100Basé sur celui de Google, adapté pour Android

Le guide spécifique importe moins que le choix d'un seul et son application cohérente. Des outils comme Checkstyle (vérifie le style et fait échouer le build en cas de violations), Spotless et google-java-format (formatage automatique à la sauvegarde ou au commit), et les formateurs d'IDE éliminent entièrement l'élément humain.

Un exemple complet : les règles de convention dans du code fonctionnel

Le compilateur est aveugle au style, donc un programme exécutable ne peut pas « tester » le formatage directement. Ce qu'il peut faire, c'est exercer les règles de nommage et de structure dans du vrai code — constantes, méthodes en camelCase, accolades K&R, variables typées par interface — et afficher des résultats qui prouvent que chaque élément fait son travail.

java— editable, runs on the server

Ce qu'il faut retenir de l'exécution :

  • MAX_RETRIES constant = 3 montre la constante UPPER_SNAKE_CASE en action. Déclarer des valeurs avec private static final et les nommer en majuscules-snake-case signale « cela ne change jamais » à tout lecteur au premier coup d'œil — la convention encode l'intention que le compilateur ne peut pas transmettre.
  • grossPrice(100.00) = 120.00 provient d'une méthode dont le nom en camelCase se lit comme une instruction. Le paramètre netPrice et l'utilisation de TAX_RATE dans le corps rendent le calcul auto-documenté ; vous le comprenez sans commentaire.
  • grades = [A, B, C] est produit par classify, écrite en style d'accolades K&R avec des accolades explicites sur chaque branche — même les bras à retour unique. Ces accolades empêchent une modification ultérieure de créer accidentellement une instruction pendante.
  • total name length = 10 provient d'une boucle for améliorée sur une List<String> déclarée avec le type interface à gauche, pas ArrayList. Coder vers l'interface est la convention qui permet au reste du code de substituer librement les implémentations.
  • totalLength is even montre un boolean nommé comme une question (isEven) alimentant un ternaire court et à usage unique. Les conventions comme celles-ci sont invisibles quand elles sont suivies et choquantes quand elles sont enfreintes — c'est précisément pourquoi les équipes les automatisent.

Ce que couvre le reste de cette partie

Les conventions sont la couche de surface ; les chapitres suivants passent de la façon dont le code ressemble à la façon dont il est structuré :

  • Clean Code — pratiques qui maintiennent les méthodes courtes et lisibles au-delà du formatage.
  • Naming Best Practices — choisir des noms qui s'expliquent d'eux-mêmes.
  • Immutability Best Practices — concevoir des objets qui ne peuvent pas changer après leur construction.
  • SOLID Principles — les règles de conception qui façonnent la façon dont les classes dépendent les unes des autres.

Pratique

Pratique
Votre équipe examine une pull request et quelqu'un déclare une valeur de configuration comme 'private static final int maxRetries = 3;'. En suivant les conventions de codage Java standard, quel est le problème ?
Votre équipe examine une pull request et quelqu'un déclare une valeur de configuration comme 'private static final int maxRetries = 3;'. En suivant les conventions de codage Java standard, quel est le problème ?
Was this page helpful?