Code review

Qu’est-ce qu’une code review ?

Selon vous, lorsqu’un écrivain rédige un livre, publie-t-il son brouillon sans aucune relecture ?   Non, ce n’est pas concevable. Combien de fois avez-vous entendu votre professeur de français vous répéter : “N’oubliez pas de vous relire avant de me rendre votre copie”. Le faisiez-vous ? Pas toujours je pense (En tous cas, ça m’est déjà arrivé !).

Lorsqu’on développe, nous devons faire la même chose pour notre code : nous devons effectuer une relecture ; que l’on appelle “code review” (revue de code).

A quoi sert une code review ?

Comme lorsque vous écrivez un article, une relecture de votre part ou même d’une tierce personne vous permet d’éviter les erreurs. Pour une revue de code, c’est exactement la même chose.

Quand nous travaillons sur une tâche, notamment dans le développement, il nous arrive d’avoir ce que l’on appelle “la tête dans le guidon”. Notre réflexion avance, nous écrivons l’algorithme comme on l’imagine, on test le rendu, ça fonctionne, et on continue … Une fois le “rush” terminé et que nos tests fonctionnent, nous avons envie de voir notre développement prendre vie. Cependant, notre métier nous oblige à penser à plusieurs notions durant un développement :

  • La sécurité
  • La maintenabilité
  • La complexité
  • L’évolutivité

Avec l’expérience, la connaissance du langage de développement et de la culture de l’informatique en général, un développeur peut, tout à fait, développer parfaitement une fonctionnalité en prenant en compte ces différentes problématiques. La question n’est pas là, mais plutôt sur l’être humain en général : nous ne sommes pas infaillibles.

De manière général, lors des formations que je peux donner, c’est souvent la maintenabilité et l’évolutivité qui ne sont pas au meilleur de leur forme.

De son côté, numerobis pense à tout.

En partant de ce postulat, il me paraît important que chaque développeur fasse relire son code tout comme nous faisons relire une publication.

L’intérêt est d’apporter “un œil neuf sur ce chantier, une vision jeune”. Que ce soit par un développeur novice ou expérimenté, il va forcément pouvoir commenter et critiquer (critique != négatif ) les différents points que j’ai pu citer au dessus.

Par l’expérience algorithmique, notre “reviewer” va peut-être nous éviter des pièges sur la maintenabilité de notre code, son évolutivité mais aussi sa complexité. Un fan de la sécurité va, par exemple, tout passer au peigne fin pour ne rien laisser passer.

Vous l’aurez compris, on ne peut pas coder tout seul dans son coin et prétendre avoir produit du code d’une extrême qualité. Surtout aujourd’hui, a l’heure où les technologies évoluent à la vitesse de la lumière. Le seul moyen de réussir un chantier en 3 mois serait-il donc la potion magique ? Evidement que non !

En revanche, avec les bons outils en main (des design patterns), les bonnes pratiques (comme le principe SOLID) et façons de faire, on parvient toujours à faire des merveilles.

Alors faites relire votre code !

Oui, mais comment faire une code review ?