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:
- chaque développeur a la possibilité de revoir tout le code et l'argument à son avis
- personne n'a le droit d'abuser du code d'autrui
- non seulement un mauvais code active une discussion mais aussi un bon code
- les discussions se terminent par des bonheurs pour toutes les personnes impliquées
- l'examen a lieu presque en temps réel, au moins avant la fin de la fonctionnalité
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:
- y a-t-il des problèmes de sécurité
- sont les API prévues utilisées
- le code a-t-il appliqué l'architecture spécifiée
- at-il écrit des tests utiles (mais seulement s'il était implicite, je devais apprendre)
- Documentation
- processus de construction
- ... et encore plus, probablement
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. .