Par Sébastien Julliand | 27 février 2020

revue de code : passez à l'automatique

Je ne vous apprendrai rien en vous disant que la revue de code est une étape essentielle du développement. Il est fondamental pour un développeur de soumettre son code à l’appréciation de ses pairs, afin d’en garantir sa qualité, et donc, sa maintenabilité.

Car en effet, le code a une odeur. Il est fréquent de rencontrer la notion de “Code smell” dans le lexique anglophone de la revue de code. Et pour cause, un développeur expérimenté saura reconnaître un code qui « sent bon » d’un code plus suspect, et ce presque par automatisme. Ce sont ces heuristiques que se propose d’appliquer les outils de revue de code, via des ensembles de règles de qualité prédéfinies qui permettent de mettre en exergue les défauts les plus fréquents. Maintenir du code propre est beaucoup plus facile (voir agréable, dirons certains passionnés) que du code tombant dans les écueils les plus communs tel que le spaghetti code ou le god object.

1. À bâbord toute

Tout l’intérêt d’une revue de code est de détecter les problèmes le plus tôt possible dans le cycle de développement. C’est le principe du shift left testing: tester tôt. Plus un bug est détecté tôt, moins il sera coûteux à corriger. Mais ce principe ne répond qu’à la moitié de la maxime de Larry Page: “Tester tôt et souvent”. L’automatisation de la revue de code répond à ce besoin fréquent de contrôle en permettant d’appliquer les règles de qualité directement dans l’environnement de développement ou encore à interval régulier via des traitements par lot.

2. Temps de cerveau développeur disponible

Une revue de code prend du temps, notamment du temps de développement. En automatisant ce qui peut l’être dans la revue de code, on évite aux équipes de passer trop de temps sur les aspects les plus rébarbatifs de l’exercice. Le respect et l’application d’une norme de codage (ie. l’indentation, le nommage des objets, champs, méthodes, …) peuvent tout à fait être contrôlés par un outil, tout comme d’autres règles mettant en lumière le code jugé inefficient voir mort, laissant ainsi plus de temps aux développeurs pour se concentrer sur des problèmes plus complexes, que seule une revue de code manuelle saura détecter. L’automatisation permet donc d’augmenter la disponibilité des développeurs (ou du moins de ne pas la diminuer) et ainsi limiter les goulots d’étranglement.

Néanmoins, il va de soi qu’un outil, aussi performant soit-il, ne remplacera jamais l’oeil perça