Comme quelqu'un qui écrit et relit beaucoup de code, j'ai appris que les revues de pull request (PR) sont plus que des vérifications de bugs : elles parlent de propriété partagée, de transfert de connaissances, et de meilleure construction du code ensemble. Voici un guide concis et pratique pour rendre les PR utiles et moins douloureuses.
1. Les objectifs d'une bonne revue
-
Chercher l'amélioration, pas la perfection
Le code parfait n'est pas réaliste : visez un code meilleur. Si une PR améliore la lisibilité, la maintenabilité ou la justesse, approuvez-la même s'il reste de petits ajustements de style. Utilisez « Nit: » pour les suggestions facultatives. google.github.io -
Propriété partagée et mentorat
Traitez les PR comme du code collectif. Laissez des retours pédagogiques (« Nit: tu pourrais utiliser X ici... »), accompagnez les développeurs juniors, et restez aussi ouverts à apprendre d'eux.
2. Se préparer avant de relire
- Auteurs : faites une auto-revue. Lancez les tests, les linters et les formatters. Donnez du contexte dans les descriptions de PR et annotez la logique complexe.
- Reviewers : lisez d'abord la description. Comprenez le « pourquoi » avant de plonger dans le code.
3. Garder les PR petites et ciblées
Les données montrent que la qualité de revue chute nettement au-delà d'environ 400 LOC et 60 minutes. atlassian.com devzery.com mikeconley.ca
Repères :
- Restez sous 200-400 LOC par PR. mikeconley.ca
- Gardez les revues sous 60 minutes.
- Pour les grosses fonctionnalités, utilisez des PR empilées (DB → API → UI).
4. Assigner les reviewers avec soin
- Un reviewer principal, idéalement avec une connaissance du domaine.
- Deux reviewers maximum, pour éviter la dilution de responsabilité. support.smartbear.com abseil.io slab.com
- Faites tourner les reviewers pour partager les connaissances et garder un bus-factor sain.
5. Ce qu'il faut vérifier dans une PR
Utilisez cette checklist mentale :
- Justesse : est-ce que cela remplit les exigences et gère les cas limites ?
- Conception : est-ce bien structuré et idiomatique ?
- Lisibilité : noms clairs, logique simple, style cohérent.
- Sécurité : valider les entrées, assainir les sorties, éviter les fuites.
- Performance : surveiller les boucles coûteuses et les requêtes N+1.
- Tests : couverture des cas centraux, limites et erreurs.
- Conformité : documentation, CI, licences et formatage corrects.
Cela nous aide à attraper davantage de problèmes tôt, surtout les problèmes de maintenabilité. google.github.io developers.google.com google.github.io
6. Tirer parti de l'automatisation
Laissez les outils faire le travail ingrat :
- Linters (ESLint, RuboCop, SonarQube)
- Formatters (Prettier, Black)
- Pipelines CI avec tests, couverture et contrôles de sécurité
Cela permet aux reviewers humains de se concentrer sur la logique, l'architecture et la nuance.
7. Donner des retours constructifs et bienveillants
- Soyez respectueux : ponctuez les suggestions, pas les personnes.
- Soulignez ce qui est bien fait.
- Soyez actionnable : expliquez le pourquoi et suggérez le comment.
- Préfixez les points non bloquants par « Nit: » ou « Optional: ». atlassian.com google.github.io
- Gardez les discussions objectives (« nous » > « tu »). Évitez la critique personnelle.
- Proposez une discussion synchrone si un va-et-vient bloque le processus. atlassian.com
8. Mesurer le processus, pas les personnes
Indicateurs utiles pour suivre les tendances (pas pour juger les individus) :
- Temps de rotation (PR ouverte → merge)
- Vitesse d'inspection (< 300-500 LOC/h au mieux) atlassian.com developers.google.com mikeconley.ca
- Densité de défauts (problèmes par LOC)
- Couverture de revue entre composants
- Nombre de commits de suivi
Utilisez ces observations pour affiner votre flux de travail, par exemple en insistant sur des PR plus petites, en améliorant la documentation ou en formant l'équipe sur les modules délicats, mais ne liez jamais ces métriques aux évaluations de performance. mikeconley.ca google.github.io bssw.io
9. Considérations propres aux langages
Des paradigmes différents demandent une attention adaptée :
- PHP/JavaScript/TS : gestion de l'asynchrone, XSS, principes SOLID
- Python : gestion des ressources (
with), PEP 8, pièges des arguments par défaut - Haskell/Scala fonctionnels : signatures de types, pureté, immuabilité, vérification des macros
- C/C++ : sûreté mémoire, pointeurs, RAII
- Java : null-safety, concurrence propre, SOLID
- Lisp : documentation des macros, typage dynamique, motifs idiomatiques
Adaptez les checklists à votre stack et impliquez des experts pour les langages moins familiers.
Bonus : sources recommandées pour aller plus loin
- Google, The Standard of Code Review – Philosophie de la santé du code et du mentorat. google.github.io
- Google Code Review Developer Guide – Conseils sous forme de checklist. bssw.io
- Étude SmartBear/Cisco – Résultats empiriques sur la taille et le timing des PR. mikeconley.ca
- Atlassian, « 5 Code Review Best Practices » – Conseils pratiques de style et de travail en équipe. atlassian.com
- Flux PR de Blockly – Processus de revue par étapes dans le monde réel. developers.google.com
Pensées finales
Les revues de PR bien faites sont plus que des barrières de qualité : ce sont des moteurs d'apprentissage, de collaboration et d'excellence technique. En combinant une culture respectueuse, de bons outils, un processus éclairé par les données et des retours réfléchis, les revues de code deviennent des discussions utiles, pas des corvées.
Bonne revue !
N'hésitez pas à laisser un commentaire ou à me contacter si vous voulez creuser davantage ou partager vos propres astuces de revue !

Commentaires