Google bietet die besten Methoden zur Codeüberprüfung an jedem Ort, den ich je gesehen habe. Alle, die ich dort getroffen habe, sind sich einig, wie Code-Reviews durchgeführt werden sollen. Das Mantra lautet "Rückblick früh und oft".
Angenommen, Sie verwenden einen Prozess, der dem entspricht, was Graham Lee vorgeschlagen hat. (Dies ist ein Prozess, den ich zuvor selbst verwendet habe.) Das Problem ist, dass die Prüfer gebeten werden, große Codestücke zu betrachten. Das ist viel mehr Aufwand, und es ist schwieriger, die Prüfer dazu zu bringen, dies zu tun. Und wenn sie es tun, ist es schwieriger, sie dazu zu bringen, gründliche Arbeit zu leisten. Wenn sie Designprobleme bemerken, ist es außerdem schwieriger, Entwickler dazu zu bringen, ihren gesamten Arbeitscode zu wiederholen, um ihn zu verbessern. Sie fangen immer noch Sachen und es ist immer noch wertvoll, aber Sie werden nicht bemerken, dass Sie über 90% des Nutzens verpassen.
Im Gegensatz dazu führt Google bei jedem Commit eine Codeüberprüfung durch, bevor die Quellcodeverwaltung gestartet werden kann. Naiv viele Leute denken, dass dies ein schwerer Prozess wäre. In der Praxis funktioniert das aber nicht so. Es erweist sich als wesentlich einfacher, kleine Codestücke isoliert zu betrachten. Wenn Probleme festgestellt werden, ist das Ändern des Designs sehr viel einfacher, da Sie noch keinen Code für dieses Design geschrieben haben. Das Ergebnis ist, dass es viel einfacher ist, eine gründliche Codeüberprüfung durchzuführen und geänderte Probleme viel einfacher zu beheben.
Wenn Sie eine Codeüberprüfung durchführen möchten, wie dies bei Google der Fall ist (was ich wirklich sehr empfehle), gibt es eine Software, die Ihnen dabei hilft. Google hat sein in Subversion integriertes Tool als Rietveld veröffentlicht . Go (die Sprache) wurde mit einer Version von Rietveld entwickelt, die für die Verwendung mit Mercurial modifiziert wurde. Es gibt eine Umschreibung für Leute, die Git namens Gerrit verwenden . Ich habe auch zwei kommerzielle Tools gesehen, die hierfür empfohlen wurden, Crucible und Review Board .
Die einzige Version, die ich verwendet habe, ist Googles interne Version von Rietveld, und ich war sehr zufrieden damit.