web-dev-qa-db-fra.com

Avis de code, Quels sont les avantages?

Dans mon équipe, nous ne faisons pas de critiques de code formelles. Nous avons tendance à penser que cela suffit avec une programmation et une rotation souvent des paires.

Devrions-nous envisager de faire des critiques de code formelles? Quels seraient les avantages?

12
Edgar Gonzalez

Nous faisons des critiques de code un peu différents (peut-être).

Nous montions tous les programmeurs ensemble (tous les vendredis) et regardons ce que nous avons fait dans une période de semaines. Ensuite, nous avons choisi les projets que nous voulons examiner, de sorte que chaque projet fait/en progression aurait au moins une ou quelques personnes. Puis à l'heure ou donc, nous examinons les changements apportés, de rechercher des erreurs, de la façon dont d'autres projets fonctionnent etc. Ensuite, indiquons les erreurs, comment cela devrait être fait (nous ne corrigeons pas les bugs que nous les signalons et spams le code avec Fixme). Tout cela, généralement pour nous (10 programmeurs) prend environ 2 heures.

Les avantages:

  • Chaque membre sait ce qui se passe dans l'entreprise
  • Les insectes sont trouvés plus rapidement
  • Cela nous oblige à écrire un code lisible (code qui peut être lu sans explication ni introduction!)
  • Méthodes d'optimisation/astuces/programmes productifs propagés plus rapidement
  • Programmeur en tant que spécialiste "évoluer" plus vite
  • C'est marrant

Ce que j'ai contre une programmation par paire, comme mentionné (bien sûr, c'est seulement mon opinion personnelle) est que plus l'équipe fonctionne longtemps - plus il est plus rapide.

J'espère que cela apporterait de la nourriture à la pensée. Bonne chance.

8
JackLeo

Je n'ai pas beaucoup d'expérience dans la révision dans votre environnement. Nous ne faisons pas beaucoup de programmation de paires ici, nous faisons des critiques de codes pour diffuser la connaissance du logiciel de l'équipe, d'avoir une autre paire d'yeux pour choisir les erreurs et avoir un point formel pour vérifier si le logiciel colle à nos directives de codage .

Les 2 premiers points sont assez bons couverts par la programmation de paires, la troisième dépend de la paire et pourrait s'améliorer d'une revue de code formelle.

2
refro

Je n'ai jamais fait de programmation par paire dans la pratique (espérez-la seulement), donc je ne peux donc pas comparer directement les deux pratiques. Cependant, je peux raconter mes expériences avec des critiques de code formelles.

J'avais l'habitude de diriger des critiques de code formelles dans un projet précédent, sur le code hérité. Le projet était dans un désordre complet et la direction s'est félicitée de toute initiative avec un espoir d'apporter une commande dans le chaos. À ce moment-là, je pensais que la revue de code officiel était une bonne idée. Nous avons trouvé des bugs et nous avons vu que la qualité du code fraîchement écrit était significativement meilleure que celle de l'ancien code. J'ai collecté des statistiques, des insectes, etc. pour prouver cela.

Nous avons fait une session par semaine en moyenne, impliquant 3-5 personnes. Chaque session a pris environ 3-4 heures par personne (y compris la préparation) et a examiné 200-300 lignes de code (LOC) *. Dans ce rythme, au cours d'une période de plus de 6 mois, nous avons réussi à revoir environ 5K LOC, à environ 50 000 km.

Dans Retrospect, j'estime que c'était très coûteux. Avec ce rythme, il nous aurait pris 5 ans pour examiner l'ensemble de la stratégie de basebase. OTOH ayant plus d'une session par semaine aurait pris des ressources loin du développement. Bien sûr, c'est le dilemme typique avec le code hérité. Mais même en examinant tout le code fraîchement écrit formellement prendrait beaucoup de temps, ralentit le développement de manière significative.

Ma conclusion est que les examens de code formels sont les mieux effectués sur le code nouvellement écrit, axé sur les parties les plus critiques du code. Le reste est mieux traité de manière plus informelle, éventuellement via une programmation par paire. C'est juste mon opinion actuelle cependant, ce qui peut changer. Je ne prétends pas être un code de revue de code gourou ou quoi que ce soit.


* C'est le rythme normal des critiques de code formels.

Les taux de révision de code typiques sont d'environ 150 lignes de code par heure. Inspection et examinant plus de quelques centaines de lignes de code par heure pour les logiciels critiques (tels que le logiciel incorporé de la sécurité critique) peut être trop rapide trouver des erreurs.

Cité de Wikipedia (accent par moi).

1
Péter Török

Les examens du code de raison sous-jacent existent, car les programmeurs isolés doivent rencontrer et discuter de leur code et vérifier qu'il est conforme à leur norme.

Vous ne mentionnez aucun problème de qualité, il semble donc que votre équipe fait déjà suffisamment de critiques de code grâce à leur programmation par paire. Impressionnant!

La programmation paire de paires correctement faite formelle Code Commentaires superflus. Mais essayez-le pendant quelques semaines et voyez comment cela fonctionne, mais je soupçonne que vous ne remarquerez aucune amélioration.

N'oubliez pas que les critiques de code sont un processus fatigant, coûteux et non quelque chose à prendre à la légère. Il introduit essentiellement un transfert de votre projet coûteux et ralentit tout . Il est beaucoup préférable de s'assurer que le code est correct en premier lieu, plutôt que d'essayer de trouver des problèmes plus tard.

1
Martin Wickman

Si vous faites une programmation par paire, la nécessité d'un examen de code diminue sensiblement, mais vous bénéficierez certainement d'une révision par les pairs. Pour que cela soit bénéfique, il faut faire par une personne senior et plus expérimentée que les membres de la paire.

Quels sont les bénéfices? Eh bien, il serait préférable que vous considériez les risques de ne pas le faire.

  • La paire pourrait faire quelque chose de mal ou peut-être le faire de manière sous-optimale
  • Peut-être que vous ne suivez pas les normes de codage ni ne documentant correctement le code. Un examen par les pairs est vraiment bon pour les trouver
  • Personne autre que la paire ne comprend qu'un morceau de code particulier. Alors, que se passe-t-il si les deux membres de la paire sont partis et que le code est mal documenté? D'autres vont perdre du temps à essayer de comprendre les choses. Avoir une troisième personne qui sait ce que vous avez fait réduit le risque.

Je suis amusé que les gens ont déclaré que la révision du code est une perte de temps. Oui, ça prend du temps. Peut-être que cela ne produira aucun changement dans le code mais cela ne signifie pas que cela soit gaspillé. C'est comme dire que vous n'avez pas besoin de vérifier votre système de feu régulièrement parce que c'est une perte de temps.

0
DPD

Pour moi, le principal avantage des critiques de code est qu'il fait que les gens écrivent un meilleur code.

Sachant que votre code sera lu et examiné vous rend plus conscience de la lisibilité et de la "correcte" de votre code. Lorsque vous connaissez que le code se déroule directement dans le référentiel et que personne d'autre ne le lira que s'il s'agit de la fixation de défaut, vous avez tendance à laisser les choses glisser comme ne pas réexprimer les noms de champs lorsque leur utilisation change, laissant des méthodes inutilisées suspendues au cas où ils pourraient être factorisé dans etc., etc.

0
James Anderson

Peut-être. CODE Avis Prenez le temps. Ils ne valent que la peine que si le temps passé par l'examen est enregistré à un autre point du processus. Quelles économies attendez-vous des critiques de code? Avez-vous des difficultés qui pourraient être empêchées par des critiques de code?

0
kevin cline