Relecture de code — HowTo

Grille de lecture en 4 passes, de la plus large (le "pourquoi") à la plus fine (le "comment").

1. 🎡 Identifier la fonctionnalité concernée

But : Comprendre l'objectif de ce développement

  • Est-ce qu'il s'agit d'une nouvelle fonctionnalité, résolution de bug, ou modification de fonctionnalité existante ?
  • Si je n'arrive pas à identifier la fonctionnalité, ne pas aller plus loin, se renseigner auprès de l'auteur·ice

2. ✅ Identifier les étapes

But : Comprendre comment a été réalisée la fonctionnalité

  • 🏷️ Lire les noms de commits un à un
  • Remonter en code review les noms de commits ambigus, c'est souvent un bon axe d'amélioration pour les prochaines code reviews
  • ✂️ Faire une analyse rapide du découpage en commits
  • Remonter si le code a été correctement découpé en commits
  • Par exemple, est-ce que le refactoring a été séparé du fonctionnel ?
  • Est-ce que certains commits cassent des fonctionnalités qui sont réparées dans les commits suivants
  • 🔧 Identifier le point critique de la MR
  • Le point critique est le point le plus important de la MR, celui qui concentre la complexité, et le gros de la fonctionnalité. On va donc retrouver les commits de refactoring avant ou après ce point de bascule, des commits de "préparation" en amont, et des commits d'amélioration, de finition UX par exemple
  • Par exemple, sur une fonctionnalité permettant à un utilisateur de mettre à jour son profil, le point critique est la soumission du formulaire ; en amont, on trouvera la préparation du modèle, des entités en base de données, et en aval on trouvera les refactorings éventuels, le design UX, les messages d'erreur, la mise en commun de composants UX

3. 🌊 Première lecture : Surface

But : Respect des standards de code, et de la qualité

  • Est-ce que le linter et tous les outils automatiques passent ?
  • Est-ce que je vois des fautes de frappe
  • Est-ce que je vois des fichiers mal nommés, des fichiers au mauvais endroit
  • Est-ce que je vois des erreurs manifestes de syntaxe
  • Est-ce que des dépendances ont été installées ? Si oui, analyse rapide et remise en question du choix de rajouter cette entropie
  • Sur tous les points remontés, est-ce que certains peuvent être automatisés

4. ⚙️ Seconde lecture : fonctionnement

But : Comprendre et questionner les difficultés et choix techniques effectués

  • Les variables sont-elles bien nommées
  • Le code est-il compréhensible
  • Est-ce que je vois des commentaires inutiles, qui répètent le nom de la fonction par exemple
  • Est-ce que la BDD a été modifiée
  • Est-ce que j'identifie des breaking changes
  • Est-ce que je suis capable d'expliquer ce que fait le code à mon chat
  • Est-ce que je vois des erreurs visibles de complexité cyclomatique (complexité liée au nombre de boucles/décisions imbriquées les unes dans les autres)
  • Est-ce que je vois des erreurs visibles de complexité cognitive
  • Est-ce que ce code semble réutilisable, est-ce que le niveau d'abstraction semble adapté
  • Les choix techniques semblent-ils bons ?