2008-09-22 5 views
13

Ich bin vor kurzem von einem Unternehmen mit 30 oder mehr Entwicklern alle auf der gleichen Website, zu einem kleineren Unternehmen mit insgesamt 6 Entwicklern im ganzen Land umgezogen.Wie machen Sie Code-Reviews?

Zuvor, als ich Codeüberprüfungen durchführte, würde ich die Person neben mir sitzen lassen, oder ich würde zu seinem PC gehen und den Code mit ihnen durchgehen.

Bei meiner neuen Firma ist dies nicht möglich, da Menschen überall sind. Ich habe ein paar tausend Zeilen Code zur Überprüfung bekommen und kann nicht einfach jemandem meine Gedanken sagen.

Der einzige Weg, an den ich denken kann, ist ein Code-Review-Dokument zu schreiben. Also habe ich den Code in Word eingefügt und mit den kleinen Margin-Bubble-Dingen kommentiert.

gibt es eine einfachere Möglichkeit, dies zu tun? Ich habe lange gedacht, dass Visual Studio ein Meta-Kommentar-System haben sollte, das Ihnen ähnliche Outlining-Funktionen bietet und Ihnen erlaubt, Kommentare auf einer höheren Ebene zu schreiben.

Gibt es irgendwelche Werkzeuge, die das tun? Wenn nicht, wie gehen die Leute damit um, verteilte Code Reviews zu machen?

+0

Ich würde vorschlagen, den Titel zu ändern "Wie machen Sie verteilte Code Bewertungen?" –

+0

Code-Review ist das richtige Tag: "Kombinieren Sie mehrere Wörter in einzelne Wörter" und wurde mehr verwendet. –

Antwort

8

Vielleicht möchten Sie den Smart-Bär Buch lesen: Best Kept Secrets of Peer Code Review

Es ist frei (einschließlich Versand, wenn Sie in den USA sind), so gibt es wenig Grund, es nicht zu bekommen. Auf der anderen Seite ist es ein großartiges kleines Buch mit realen Beispielen, wie Peer-Code-Reviews am besten durchgeführt werden können. Es gibt also genug Gründe, es zu bestellen.

0

JIRA hat die Option, jemanden zu Code-Review Ihre Arbeit zu vergeben, er/sie kann dann Kommentare innerhalb JIRA geben.

0

Wir waren genau im selben Boot - Entwickler im ganzen Land, nicht genug Überlappungszeit während des Tages ... Jeder arbeitet asynchron ... Also mussten wir uns ein Offline-Code-Review-Tool einfallen lassen.

Wir hatten am Ende einen relativ leichten Prozess: - Für alle nicht-trivialen Code ist eine Peer-Review obligatorisch. - Um eine Überprüfung durchzuführen, erstellt der Autor eine "gepackte Änderungsliste" (überprüfen Sie Ihre Quellcodeverwaltung für solche Dinge). Es ist im Grunde eine einzige Datei, erweiterbar ZIP aller Änderungen in diesem Stück Arbeit gemacht. - Der Autor sendet eine E-Mail an den Prüfer mit der gepackten Änderungsliste (beachten Sie, dass sie es noch nicht abgeschickt!) - Der Prüfer geht durch den Code, asynchron, und fügt die Kommentare in eine E-Mail - Wenn Rezensent ernst hat Einwände, Code darf nicht bis zu einer weiteren Runde von Rezensionen gehen; Andernfalls kann der Autor einchecken, nachdem er die Vorschläge korrigiert hat, oder Fehler zur Behebung von Vorschlägen öffnen.

5

Ich wünschte, es gäbe bessere Unterstützung für diese Art von Aufgabe in Visual Studio gebaut. Es gibt einige interessante Add-Ins, die aber helfen können. Wenn Sie Visual Studio Team System verwenden, werfen Sie einen Blick auf TeamReview. Es ermöglicht Ihnen, spezielle Code Review-Arbeitselemente zu generieren, die zu einem späteren Zeitpunkt "abgespielt" werden können.

TeamReview screenshot http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=TeamReview&DownloadId=32263

1

http://www.review-board.org/

ich dieses Projekt auch sah nicht allzu langer Zeit, vielleicht kann es bis gestimmt erhalten, wenn die Leute es verwenden .

1

Wenn möglich, beginnen Sie mit Testfällen - Lassen Sie sich durch die Testfälle führen. Es zeigt das Design und was der Entwickler dachte, würde das Problem lösen. Tauchen Sie in Testfälle ein und schauen Sie sich den Code an.

Schauen Sie sich auch Code-Coverage-Berichte an, die automatisch von einem Build generiert werden. Es kann eine gute Metrik auf Testpfaden sein.

Das ist, wo ich anfangen würde.

2

Wir haben Entwickler auf der ganzen Welt. Wir verwenden Smart Bear Code Collaborator. Wie jedes Werkzeug ist es nicht perfekt, aber es macht die Arbeit gut. Es ist webbasiert und einfach zu erlernen.

0

Wir hatten einige Erfolge mit der TFS-Shelveset-Funktion, um verteilte Code-Reviews durchzuführen. Mit Hilfe von Shelvesets kann ein Entwickler einen Changeset "einchecken", ohne ihn an den Zweig zu übergeben. Ein anderer Entwickler kann dann den Änderungssatz nicht mehr anzeigen und die Diffs gegen den festgelegten Zweig überprüfen. Sobald alle Beteiligten mit dem Changeset zufrieden sind, werden sie für die Filiale engagiert.

0

Ein sehr leichte Prozess, den wir verwendet haben ist sowohl Microsoft Sharedview und Skype zu verwenden Paar Programmierung Sitzungen zu haben und Code-Review zu tun. Zugegeben, es ist nicht so formell wie eine Check-in-Politik, aber es könnte ein guter Anfang sein, um Standards zu entwickeln, bevor man sie in einer Check-in-Politik in Erinnerung ruft.

2

In der Firma, für die ich arbeite, werden Patches, die über SVN generiert werden, täglich in einer Newsgroup eingereicht. Die Live-Code-Überprüfung ist immer noch der effizienteste Weg, um eine Überprüfung abzuschließen. Da wir jedoch an virtuellen Teams mit Entwicklern auf der ganzen Welt arbeiten, ist es manchmal unmöglich, den Entwickler und den Reviewer miteinander sprechen zu lassen.

Um unseren Entwicklern bei der Durchführung der Überprüfungen zu helfen, haben wir eine Checkliste für die Codeüberprüfung zusammengestellt (verfügbar unter: http://www.macadamian.com/index.php?option=com_content&task=view&id=27&Itemid=31).

Unser Geheimnis hinter Code-Reviews: Review klein, oft zu überprüfen.

0

Nun, ich werde Ihnen sagen, was mein Unternehmen macht, da es gut für uns funktioniert (etwa 10 Entwickler plus PM ppl). YMMV.

Wir tun unser Änderungsmanagement mit Subversion und ClearQuest (verwendet, um ClearCase zu verwenden, um CQ abzuzweigen). Wir machen unsere Änderungen, erstellen Patch-Dateien mit Subversion und setzen dann den Patch auf den CQ-Record und geben das CQ weiter. Low-Tech, aber es funktioniert. Natürlich können Sie es so ändern, dass es mit der von Ihnen verwendeten Ticketing-App funktioniert.