Pourquoi instaurer les revues de code?

Mardi 16 août 2022 8 min de lecture

Introduction

Notre mission en tant que développeur, au-delà d’apporter des solutions techniques aux problèmes métier; c’est d’écrire du code durable. Et un code durable est le résultat d’un ensemble de pratiques, dont les revues de code.

Lorsque vous travaillez au sein d’une équipe de développeurs sur un projet logiciel et vous remarquez les problèmes à savoir :

  • une dette technique difficilement rattrapable ;
  • du code incompréhensible ;
  • des bugs qui auraient dû être vus avant la livraison ;
  • toute la connaissance technique du projet portée par une seule personne.

Alors, les revues de code s’imposent.

Qu’est-ce qu’une revue de code?

Selon Wikipédia, une revue de code est l’examen systématique du code source d’un logiciel. L’examen dont le but est de trouver des bugs ou des vulnérabilités potentielles ou de corriger des erreurs de conception afin d’améliorer la qualité, la maintenabilité et la sécurité du logiciel.

La revue de code ou “code review” est une pratique de plus en plus adoptée par des jeunes entreprises (agiles) ainsi que certains grands groupes dans le but de livrer des produits logiciels de qualité.

Ainsi, quels intérêts trouveraient ces entreprises dans l’instauration de cette pratique?

Quels sont les intérêts de la revue de code?

📌 La revue de code assure la qualité

Elle contribue à l’amélioration de la qualité du code en réduisant les chances d’insérer une dette technique, à savoir :

  • du code qui ne serait pas optimisé
  • un code qui serait difficile à interpréter ou qui est redondant
    Ainsi, revue de code permet de détecter et corriger les défauts au plus tôt pour réduire la dette technique.

📌 Elle constitue un filet de sécurité contre les bugs à venir

C’est l’occasion d’identifier les potentielles failles et erreurs conception.

📌 Elle favorise la collaboration et le travail en équipe

La revue du code facilite le partage de connaissances sur l’ensemble de la base de code et au sein de l’équipe en permettant aux parties prenantes de s’approprier le code.

Ainsi, elle permet de réduire le risque qu’un membre de l’équipe soit le seul à connaître une grande partie de la base du code. C’est en ce sens que la revue de code peut permettre à n’importe quel développeur de faire évoluer le code, même si l’auteur de ce dernier est absent.

📌 La revue de code contribue à la formation des développeurs

La revue de code permet aux développeurs d’apprendre la base de code, ainsi que les nouvelles technologies et techniques qui leur permettront de faire évoluer leurs compétences.

📌 La revue du code permet d’appliquer un standard de codage

Comment faire une revue de code?

Une revue de code peut s’appuyer sur la vérification (manuelle ou automatisée) du respect d’un ensemble de règles de programmation.

Bien que les revues de code puissent prendre différentes formes, le mode le plus rependu reste la revue à travers les “Pull Request” ou “Merge request” sur les plateforme de versionning de code, à savoir : Github, Gitlab, Bitbucket, etc.

Une “Pull Request” également appelée demande de fusion (Merge Request) — est l’une des actions effectuées par un contributeur ou développeur lorsqu’il veut fusionner de nouvelles modifications de son code avec le dépôt principal du projet.

Les “Pull Requests” se font généralement de façon asynchrone aux travers des discussions sur le code ajouté.

La revue de code peut se faire parfois par “Pair programming” en présentiel ou à distance.

Qui se charge de la revue de code (les revieweurs)?

  • Développeurs expérimentés (seniors) et de ceux qui ont une bonne connaissance du système et des règles métier
  • Ceux qui n’ont pas participé à l’écriture du code (n'importe quel développeur de l’équipe)

Un ensemble de points est vérifié prioritairement, notamment :

  • La lisibilité du code et le respect des bonnes pratiques de développement
  • La compréhension des règles métiers par l’auteur du code
  • La pertinence et la performance des algos écrits

Recommandations et Conclusion

Notons, que les revues de code ne constituent pas la seule solution aux problèmes des équipes techniques sur des projets plus ou moins complexes.

Par-dessus tout, la culture de l’équipe (ou de l’entreprise) reste un élément déterminant de la communication ainsi que le flux de travail au sein de l’équipe.

  • Rendre accessible la documentation métier et technique du projet
  • Organiser des réunions

Sont des aspects permettant à tous les membres de l’équipe de rester sur la même longueur d’onde.

Des pratiques notamment :

  • L’écriture des tests unitaires et fonctionnels
  • L’application des bonnes pratiques de programmation
  • L’utilisation des outils d’analyse statiques ou de correction/formatage automatique de code
    Permettent de gagner du temps de revue.

Il est recommandé d’établir une « Checklist » préalablement établit, afin de faciliter la revue de code.

Pour finir, notons que les revues de code font partie des rituels des équipes techniques, garantissant la qualité et l’évolutivité du code. Elles peuvent être chronophages, mais ce n’est pas du temps perdu, bien au contraire.

Si elle est bien faite, la revue de code permet, en réalité, de gagner du temps à long terme.

Voilà pour ce petit article sur le sujet de la revue de code, n’hésitez pas à partager dans les commentaires vos points de vue et conseil cette pratique.