web-dev-qa-db-fra.com

Quel est le but d'une révision de code

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?

77
SoylentGray

Il existe plusieurs raisons pour lesquelles vous souhaitez effectuer une révision du code:

  • Formation d'autres développeurs. Assurez-vous que tout le monde voit la modification associée à un correctif ou à une amélioration afin de comprendre le reste du logiciel. Cela est particulièrement utile lorsque les gens travaillent sur des composants qui doivent être intégrés ou sur des systèmes complexes où une personne peut aller pendant de longues périodes sans regarder certains modules.
  • Recherche de défauts ou d'opportunités d'amélioration. Le code livrable ainsi que le code de test et les données peuvent être examinés pour trouver des faiblesses. Cela garantit que le code de test est robuste et valide et que la conception et l'implémentation sont cohérentes à travers l'application. S'il doit y avoir des modifications supplémentaires, cela saisit l'opportunité plus près du point d'entrée.

Il existe plusieurs analyses de rentabilisation pour effectuer des examens:

  • Trouver des défauts ou des problèmes qui devraient être retravaillés plus près de leur injection. C'est moins cher.
  • Compréhension partagée du système et formation croisée. Moins de temps pour un développeur pour se mettre à jour pour apporter des modifications.
  • Identification des améliorations possibles du système.
  • Ouverture de la mise en œuvre pour garantir que les testeurs fournissent une couverture adéquate. Transformer une boîte noire en boîte grise ou blanche dans une perspective de test.

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 .

75
Thomas Owens

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é.

51
amon

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é?

12
user25946

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é.

9
Chris Knight