am 7. Juli 2010
Heute wollen wir mal ein Thema ansprechen, bei dem ich mal wieder auf eine Diskussion hoffe. Eine Diskussion die dazu dient Erfahrungen und Best Practices auszutauschen. Grundsätzlich geht es dabei um Code Reviews. Ich will “kurz” erklären, wie wir sie zur Zeit durchführen und hoffe, dass ihr dann eure Vorgehensweisen beschreibt. Aber fangen wir doch einfach mal an.
Wie wohl die meisten anderen auch, fangen wir mit der Programmierung von Code an, da sitzen dann ein bis zwei Personen am PC und produzieren Source-Code, der dann ins SVN eingecheckt wird. Sobald ein Stand erreicht ist, dem ein Review gut tun würde, wird bescheid gegeben und eine Person drauf angesetzt. Dieser Reviewer checkt dann lokal das Repository aus und geht den Code Zeile für Zeile durch.
Bis jetzt könnte ich mir vorstellen, dass es bei allen noch ähnlich aussieht. Jetzt kommen wir zur Dokumentation der gefundenen Smells, Fehler oder sonstigem. Wir haben uns hier darauf geeinigt über PHPDoc-Kommentare zu gehen. Ein solcher Kommentar könnte wie folgt aussehen:
// @review 2010-07-05 NLA Don't use standard exceptions
Da wir alle Eclipse, bzw. Zend Studio bei uns im Team verwenden können wir, da einen Task Tag @review haben schön nach diesen Stellen suchen und sie uns auch einfach sortieren lassen (falls es jemanden interessiert, wie man solche Tags erstellt, möge er jetzt sprechen). Wenn alles mit Kommentaren versehen ist, wird der Code wieder eingecheckt. Der oder die Programmierer, können sich das Review dann anschauen und gegebenenfalls drauf reagieren.
Wenn man nicht einer Meinung ist und das wird öfters passieren setzen wir und danach noch zu einer kleinen Diskussionsrunde zusammen. Alles immer sehr informell. Um ehrlich zu sei bin ich gespannt drauf, wie ihr Reviews betreibt. Wir haben gute Erfahrungen mit dem System gemacht und finden es relativ effizient. Ich kenne aber diverse Reviewtechniken, die eher in der großen Runde ablaufen. Laut Code Complete sollten diese Verfahren sehr effizient sein, aber irgendwie kenne ich niemanden, der sie anwendet.