Revue de code en Java : quoi vérifier et comment donner un retour
La revue de code (code review) n'est pas qu'une simple formalité avant de fusionner une pull request. C'est un outil puissant pour améliorer la qualité du code, partager des connaissances et prévenir les bugs. Pour les développeurs Java débutants, participer à une revue suscite souvent de la peur : « Et si on me critique ? », « Et si je rate une erreur critique ? ». Dans cet article, nous allons voir sur quoi se concentrer lors de la vérification du code Java et comment donner un retour qui aide, sans démotiver.
1. Que vérifier dans le code Java : une checklist pour débutants
La première étape, et la plus importante, est de savoir quoi regarder. N'essayez pas de tout trouver d'un coup. Concentrez-vous sur les domaines clés. Voici une checklist de base pour une revue de code en Java :
- Logique et exactitude : Le code résout-il le problème posé ? Y a-t-il des erreurs logiques évidentes ? Les cas limites sont-ils correctement traités ?
- Nommage (naming) : Les noms des variables, méthodes et classes respectent-ils les conventions Java (camelCase, PascalCase) ? Sont-ils explicites ?
int aest mauvais,int numberOfUsersest bon. - Gestion des erreurs : Y a-t-il des blocs try-catch ? Utilise-t-on des types d'exceptions spécifiques plutôt que le générique
Exception? Les exceptions ne sont-elles pas avalées en silence (catch vide) ? - Performance : Y a-t-il des problèmes évidents, comme la création d'objets dans des boucles, l'utilisation de la concaténation de chaînes avec
+dans une boucle (préférezStringBuilder), ou des appels de méthodes inutiles ? - Tests : Le code est-il couvert par des tests unitaires ? Testent-ils uniquement les scénarios positifs ou aussi les scénarios négatifs et les cas limites ?
Exemple de mauvais code qui devrait être remarqué lors de la revue :
public void processData(List data) { for (Object item : data) { String s = ""; for (int i = 0; i < 1000; i++) { s += item.toString() + i; // Problème de performance potentiel } System.out.println(s); }}Qu'est-ce qui ne va pas ici ? L'utilisation de + dans la boucle crée de nombreux objets String intermédiaires. Il est préférable d'utiliser StringBuilder. De plus, il manque une vérification de data pour null.
2. Comment donner un retour constructif
L'aspect le plus difficile d'une revue de code n'est pas la vérification technique, mais la communication. Votre objectif n'est pas de montrer qui est le plus intelligent, mais d'aider l'équipe à grandir. Voici quelques règles :
- Concentrez-vous sur le code, pas sur l'auteur. Au lieu de « Tu as écrit un code horrible », dites « Cette méthode peut être simplifiée en utilisant le Stream API ».
- Utilisez la forme interrogative. Au lieu d'affirmations, posez des questions. Exemple : « Pourquoi ArrayList a-t-il été choisi ici plutôt que LinkedList ? Étant donné les insertions fréquentes en début de liste, LinkedList pourrait être plus efficace ».
- Expliquez le « pourquoi ». Un simple « Corrige ça » ne fonctionne pas. Écrivez : « Remplaçons
==par.equals()pour comparer les chaînes, car==compare les références, pas le contenu ». - Félicitez le bon code. Si vous voyez une solution élégante, soulignez-la. « Excellente utilisation du pattern Builder ici — le code est devenu beaucoup plus lisible ».
Exemple de mauvais commentaire : « C'est du code de merde, réécris-le ». Exemple de bon commentaire : « Je pense que ce bloc pourrait être extrait dans une méthode privée séparée pour améliorer la lisibilité de la méthode principale. Qu'en penses-tu ? »
3. Erreurs typiques des débutants en Java et comment les mettre en évidence
En connaissant les erreurs typiques, vous pourrez les trouver plus rapidement et donner des conseils plus pertinents. Voici le top 3 des erreurs souvent rencontrées lors des revues de code chez les développeurs Java débutants :