Je suis en train d'essayer de vendre mon organisation sur la valeur des revues de code. J'ai travaillé à plusieurs endroits où ils étaient employés. Je les ai vus habitués aux choix de style et aux décisions fonctionnelles, et je les ai vus utilisés comme rien de plus qu'un contrôle de l'intestin pour s'assurer que rien de dangereux n'est mis en œuvre. Mon instinct est que le but le plus efficace se situe quelque part entre les deux options.
Alors, quel est le but d'une révision de code?
Il existe plusieurs raisons pour lesquelles vous souhaitez effectuer une révision du code:
Il existe plusieurs analyses de rentabilisation pour effectuer des examens:
Si vous recherchez une discussion complète sur les avantages et les stratégies de mise en œuvre des évaluations par les pairs, je vous recommande de consulter Peer Reviews in Software: A Practical Guide by Karl Wiegers .
Les revues de code sont un outil pour transfert de connaissances.
Lorsque les développeurs examinent le code de chacun, ils se familiarisent avec tous les domaines du système. Cela réduit le facteur de bus d'un projet et rend les développeurs plus efficaces lorsqu'ils doivent effectuer une maintenance sur une partie du système qu'ils n'ont pas écrite.
Lorsqu'un programmeur junior passe en revue le code d'un senior, le programmeur junior peut prendre des astuces autrement apprises uniquement par l'expérience. Cela peut également servir de correctif contre un code trop compliqué.
Un examen approfondi du code nécessitera des vérifications fréquentes par rapport à divers documents. C'est un excellent moyen d'apprendre une langue ou une API.
Lorsqu'un programmeur senior examine le code d'un junior, c'est l'occasion de résoudre les problèmes avant ils se traduisent par une dette technique. Une révision de code peut être un bon cadre pour le mentorat de programmeurs juniors.
Les révisions de code ne concernent pas:
… Trouver des bugs. C'est à cela que servent les tests. Il arrivera fréquemment qu'un examen de code trouve un problème.
… Taquiner les problèmes de style - se contenter d'un style et utiliser des formateurs automatisés pour le faire respecter. Mais il y a beaucoup de choses qu'un outil automatisé ne peut pas vérifier. Les révisions de code sont un bon endroit pour s'assurer que le code est suffisamment documenté ou auto-documenté.
La chose la plus précieuse que j'obtiens personnellement d'un examen de code est la confiance que le code est clair à une autre personne. Les variables sont-elles clairement nommées? Le but de chaque morceau de code est-il raisonnablement évident? Est-ce que quelque chose d'ambigu est clarifié avec un commentaire? Les cas Edge et les valeurs valides pour les paramètres sont-ils décrits dans les commentaires et le code vérifié?
Je voudrais ajouter deux domaines non couverts par les autres bonnes réponses:
Une excellente raison pour les revues de code est le effet Hawthorne qui dans notre cas se traduit par: Si vous savez que quelqu'un va regarder votre code par la suite, alors vous êtes beaucoup plus susceptible de l'écrire mieux en premier lieu .
Une autre bonne raison est de meilleures pratiques de développement sécurisées. Il suffit de regarder Apple's goto fail (une ligne de code dupliquée accidentellement) ou Heartbleed bug (un échec de base dans la validation des entrées) pour comprendre l'importance du bon code examens dans un cycle de vie de développement sécurisé.