Tout d'abord, je crois fermement au processus de révision du code et je veux toujours que quelqu'un d'autre révise mon code. Ma question porte vraiment sur la façon de faire un meilleur travail pour effectuer une révision de code pour quelqu'un d'autre?
Je sais que pour effectuer une révision du code, vous devez avoir une connaissance du fonctionnement du code existant et une connaissance de la norme locale, deux choses que je pense connaître très bien. Je sens toujours que je ne fais jamais assez de révision de code pour les autres. Je sais aussi que certaines personnes semblent faire un meilleur code de révision de travail que d'autres, donc je me demande pour ceux qui sont de grands réviseurs de code quelles sont les techniques que vous utilisez?
la source
Réponses:
Il n'y a aucun moyen de faire un meilleur examen du code. La seule chose que vous pouvez faire est de continuer à vous améliorer avec l'apprentissage et l'expérience.
Normalement, les choses que je suis
Je pense qu'il y a beaucoup à ajouter.
la source
demandez-vous ce qui fait des autres un bon critique pour vous?
aussi, au fur et à mesure que vous parcourez le code;
la source
Je vise juste
En dehors de cela, "savoir quoi chercher" vient avec l'expérience, la pratique et la lecture.
la source
D'après mon expérience, le meilleur moyen est de laisser l'équipe du trou faire la révision du code. Nous utilisons une liste de diffusion de validation dans chaque projet où vous pouvez suivre toutes les modifications de code apportées au système de contrôle de version. La plupart de nos développeurs se sont abonnés à leur liste de diffusion spécifique au projet car ils sont intéressés par les changements de code.
Quand quelqu'un remarque une mauvaise façon dans le nouveau code source, il explique au committer comment il peut le faire de meilleure façon, si le committer est un stagiaire, ou il commence une discussion à ce sujet, s'il s'agissait d'un committer plus expérimenté.
Bien sûr, cette méthode ne garantit pas que tout le nouveau code est révisé, en particulier dans les moments stressants où aucun membre de l'équipe n'a le loisir de suivre chaque changement de code. De plus, tous les développeurs ne sont pas responsables de veiller à ce que chaque développeur fasse bien son travail, rien que cela ne peut garantir qu'il est examiné. Mais, au moins dans nos équipes, il y a toujours un responsable technique qui est responsable de la qualité technique.
Je suis un vrai fan des revues de code si elles sont conformes aux scores suivants:
Ce que j'ai appris, c'est que si vous êtes quelqu'un qui examine chaque ligne de code et pense que vous devez contrôler des choses comme la qualité du code en termes de formatage ou d'efficacité du code, vous êtes vous-même très inefficace parce que vous faites ce que les machines peuvent faire pour tu. Votre objectif devrait être d'utiliser un système d'intégration continue qui contrôle la qualité de construction et de code de chaque contribution de code. Si ce système génère des rapports et les envoie aux contributeurs, tout est parfait.
Je dois admettre que si vous devez revoir le code parce que vous devez contrôler ou classer la qualité d'un programmeur, alors mes suggestions n'ont pas de sens. Dans ce cas, je ne reverrais pas non plus le code source ligne par ligne. Je voudrais revoir des choses comme:
Si vous êtes un développeur expérimenté, vous trouverez certainement toujours des choses comme des boucles que vous pourriez faire avec de meilleures performances. Bien sûr, il est utile d'expliquer aux autres ces connaissances, mais cela ne devrait pas faire partie de la session d'examen. S'il y a des problèmes de performances importants, ce n'est pas parce qu'il (ou elle) a utilisé une variante moins efficace d'un type de liste.
Parce que la question initiale était pourquoi certaines personnes semblent faire un meilleur examen que d'autres personnes, je répondrais que ces personnes font peut-être un aperçu avant le début de l'examen réel, ce qui signifie qu'elles sont probablement préparées elles-mêmes afin qu'elles sachent exactement ce qu'elles veulent examiner. .
la source
Posez-leur beaucoup de questions
En fait, non, vous n'avez pas besoin de connaître le code à l'avance pour être un bon réviseur.
Il y a quelques emplois, mon employeur a commencé à exiger que tous les enregistrements de code soient approuvés par un réviseur. Je faisais principalement du GUI en C, et l'un des meilleurs critiques pour moi était mon copain Bill. Il était compétent en C, mais n'avait jamais fait beaucoup de travail GUI, et en entrant dans les revues, il n'avait aucune idée de la façon dont mon code était censé fonctionner.
Mais il a posé beaucoup de questions à ce sujet, et avoir à expliquer pour qu'il puisse comprendre ce que mon code a fait et pourquoi a stimulé beaucoup de réflexion de ma part. Cela m'a amené à trouver beaucoup de petits bugs étranges avec des cas de bord, et à considérer également d'autres approches que j'aurais pu adopter. De plus, même si j'écrivais C depuis 22 ans à ce moment-là et pensais que j'étais assez compétent, cela a rapidement amélioré la qualité de mon code.
Même si je n'y travaille plus, je passe en revue les différences avant l'enregistrement et je me demande: "Quelles questions Bill aurait-il à ce sujet?" Et bien souvent, je finis par changer quelque chose.
la source