Les équipes autour de Microsoft à utiliser une variété de différents CR méthodes. Certaines équipes sont très formelles, d'autres plus informelles. À ma connaissance, toutes les équipes font une forme de revue de code ou d'une autre
Notre équipe a tendance vers une plus informels de l'examen du code de style. De nouveaux morceaux de code, de grande taille ou complexes des changements d'aller d'abord à travers un face à face de marcher à travers. Plusieurs d'entre nous se réunissent dans une salle de conférence et l'auteur des promenades tout le monde à travers les changements. Le point est de s'assurer que tout le monde comprend pourquoi l'auteur a fait des choses qu'ils façon dont ils ont.
Avant une promenade à travers, les participants doivent avoir lu toutes les spécifications et autres documents et traversé le code sur leur propre. La promenade à travers la est plus pour répondre à des questions de compréhension et de fournir des commentaires constructifs. Comme le dev manager, j'ai vraiment décourager les commentaires sur le style de cette rencontre: nos équipes ont bien défini et documenté les normes de codage que les gens devraient suivre. Nous ne sommes pas draconiennes à ce sujet, mais nous allons annuler une promenade à travers si moi-même ou de l'un des fils abat le code n'est pas prêt pour une promenade à travers en raison de problèmes de style.
Après la promenade à travers, d'autres commentaires sont gérées par e-mail. Nous n'avons pas officiellement suivi de la commentaires - e-mail fournit suffisamment d'enregistrement.
Nous utilisons développeur branches pour chaque personne, donc, des gens réellement enregistrer les modifications dans leur direction avant de la revue de code. C'est plus facile que d'essayer de garder les changements de notre système de contrôle de code source avant qu'il soit examiné.
Les membres de l'équipe de l'envoi des modifications basées sur l'examen du code de la rétroaction aux autres membres de l'équipe dans ce que nous appelons un "BBAPCK". C'est un ensemble de modifications qui peuvent être consultés, comparable ou appliquées temporairement pour une copie locale de la base de code. Habituellement, le plomb approuver la version définitive de BBAPCK pour l'intégration dans le parent de code de la branche.
Des changements progressifs pour les corrections de bugs ou de petites améliorations sont simplement manipulés par e-mail. Ou d'un rapide "sur l'épaule" de la revue de code.
Dans votre question, vous utilisez le terme "force". Je suggère que si vous avez à la force des membres de votre équipe pour faire quelque chose en leur imposant des outils et des processus sur eux, alors vous avez de culture d'équipe, la discipline, ou de la direction des problèmes à résoudre.
Pour notre équipe, la dev général a le pouvoir discrétionnaire des modifications qu'il va faire de CR de la rétroaction. Mais, le conduit et la haute devs peuvent exiger certaines choses. Nous n'avons pas de règles sur ce point - culture d'équipe lecteurs. Nous n'ont presque jamais eu un désaccord sur la CR de la rétroaction. Nous avons une culture, de fournir une bonne rétroaction constructive. CR de la rétroaction est conditionnée utile; tout ce qui rend le code meilleure est la bonté.
Ce poids léger processus fonctionne bien pour nous: Nous avons assez de processus pour repérer les bugs dans les CRs, mais il est léger poids assez pour nous de se déplacer rapidement et d'être efficace.
Notre plus grand défi est de prévoir du temps pour le CRS... même si nous faisons beaucoup par e-mail, certains CRs prendre beaucoup de temps. C'est difficile à prédire, et le calendrier. Mais, nous avons la priorité CRs très - rarement à sauter pour répondre à l'annexe. Bien que cela arrive.
J'ai travaillé dans des sociétés où la révision du code absolument sucer. Nous avons passé de façon plus de temps à discuter sur les questions de style comme le nom des variables, ou lorsque des accolades aller encore plus importants sujets. Bien sûr, compatible le style est important, mais en se concentrant sur l'exactitude, la fiabilité, la performance, l'efficacité et la facilité de maintenance est de façon plus importante que le style.
Nous gardons le code dans l'équipe de style en encourageant les gens à le faire: Si quelqu'un rentre un peu "moche" du code, le chef de simplement il fixe.
J'ai un projet où le code de base (environ 90K lignes de code) a trois styles distincts. Cela est dû à plusieurs choses: 1) j'ai eu un membre de l'équipe (qui n'est plus avec nous) qui refusaient tout simplement à suivre l'équipe de style. Nous n'avons pas eu le temps d'aller le re-formater tout son code. 2) Certains de nos code suit un autre équipes de style parce qu'il est basé sur leur code.
De mon point de vue sur le style, c'est qu'il doit être cohérent dans chaque module et les modules associés, mais il n'est pas trop problématique si elle varie un peu. Cela est vrai pour l'un de mes équipes. Le XPERF outils de l'équipe est très différent - il est très important pour eux que leur code est très style cohérent pour tous les modules. Cela fonctionne très bien pour eux.
En tant que responsable du développement, je trouve cela important d'être flexible ici et laissez-les équipes (et certaines personnes) ont la liberté de fixer leurs propres règles de codage et de normes. Il est important pour les développeurs et à la fin de la journée; les devs qui ne sont pas déformés sur les directives de codage profiter de leur mieux travailler et d'accomplir plus de travail.
Maintenant, certaines choses ne sont pas à gauche jusqu'à des équipes ou des devs. Dans windows, nous avons de nombreuses pratiques et les exigences que nous suivons avec exigeante discipline. Par exemple, tous les code de produit doit être entièrement localisation. De nombreuses pratiques autour de la sécurité et la fiabilité sont toujours respectés. Personne ne saisines sur ces parce que nous savons tous à quel point ils sont importants.
Nous vérifier ces choses à l'aide de quelques outils très sophistiqués qui, maintenant navire dans Visual Studio 2008. D'autres sont vérifiés dans nos revues de code.
J'encourage tout le monde à travailler avec leur équipe afin de trouver un jeu de CR des pratiques et des habitudes qui fonctionnent bien pour l'équipe. Si vous êtes un gestionnaire, je vous encourage à prendre une "main" avec en poussant ce que vous vous sentez peut-être la bonne chose, malgré les objections de votre équipe. Bien sûr, vous devez exercer votre jugement et de votre expérience à l'équipe, mais les combats sur CR les pratiques et les questions de style peuvent ruiner une bonne équipe, j'ai vu cela se produire.
À la fin de la journée, de se concentrer sur deux choses:
- L'expédition du code qui offre ce que vos clients veulent; est fiable, fonctionne bien et répond aux autres exigences.
- Le maintien d'un plaisir et un milieu de travail enrichissant pour votre équipe. Après tout, le codage est amusant après tout. Si c'est pas le cas, votre équipe de gestion est horked.
Efficace révision du code de pratiques peut être une force très positive pour ces deux objectifs.