Qu'est-ce que la code review ?
La code review (revue de code) est une pratique collaborative ou un ou plusieurs développeurs examinent le code ecrit par un pair avant qu'il ne soit integre dans la branche principale. C'est l'une des pratiques les plus efficaces pour améliorer la qualité du code, partager les connaissances et maintenir la cohérence d'un projet. La majorité des équipes modernes utilisent les pull requests (GitHub) ou merge requests (GitLab) comme support de code review.
Objectifs et benefices
La code review poursuit plusieurs objectifs : détecter les bugs avant qu'ils n'atteignent la production, améliorer la qualité du code (lisibilité, performance, sécurité), partager les connaissances (le reviewer apprend la fonctionnalité, l'auteur apprend les bonnes pratiques), maintenir la cohérence du style et de l'architecture, et documenter les décisions (les discussions dans les PR forment un historique). Des études montrent que la code review detecte 60-65% des defauts avant le merge.
Bonnes pratiques pour l'auteur
Préparer une bonne PR : petites PR (moins de 400 lignes idéalement), description claire (contexte, changements, comment tester), tests inclus, auto-review avant de soumettre (relire son propre diff). Decouper les gros changements en PRs incrementales. Répondre aux commentaires avec des explications ou des corrections, jamais defensivement. Marquer les commentaires résolus après correction.
Bonnes pratiques pour le reviewer
Commencer par comprendre le contexte (description, ticket lie). Vérifier la logique métier, pas seulement le style. Formuler les retours de manière constructive ("que penses-tu de..." plutôt que "c'est faux"). Distinguer les bloqueurs (bugs, sécurité, performance) des suggestions (nommage, style). Approuver quand c'est "assez bon", pas "parfait". Reviser rapidement (dans les 24h) pour ne pas bloquer l'équipe. Les nitpicks (détails mineurs) sont marques comme tels.
Automatisation et outils
L'automatisation réduit la charge des reviewers : linters et formatters (ESLint, Prettier, Black) eliminent les discussions de style, CI/CD (tests automatiques, build) valide le fonctionnement, SAST (SonarQube, Semgrep) detecte les vulnérabilités, et les bots (Dependabot, Renovate) gèrent les mises à jour de dépendances. Le reviewer humain se concentre sur la logique, l'architecture et les cas limites que les outils ne detectent pas.