The Gitlab fox on Sebastian Helzle's Blog

Code-Reviews einfach gemacht

Kategorien:

Das Problem

Bei der Arbeit an komplexeren Projekten ist es an einem Punkt notwendig, Code-Reviews durchzuführen. Das sollte man sogar für kleine und einfache Projekte tun, aber aus meiner Sicht entsteht der wirkliche Bedarf, wenn man Probleme mit der Codequalität hat, Regressionen oder einfach nur Wissen im Team verbreiten will.

In unseren Projekten haben wir kein Code-Review-Tool wie Gerrit, und wir sind noch nicht sicher, ob es uns wirklich hilft oder uns bei der Arbeit in einem kleinen Team bremst.

Vor einer Weile habe ich begonnen, Gitlab in verschiedenen Projekten zu verwenden, um so etwas wie Github zu haben, aber ohne ihnen meine Daten zu geben. Ich werde nicht näher darauf eingehen, wie man Gitlab installiert oder einrichtet. Es gibt großartige Anleitungen und die Einrichtung und Upgrades sind wirklich einfach.

Hinweis: Dieser Text wurde teils automatisch aus dem Englischen übersetzt.

Sehen Sie, was los ist

List of latest commits

Die neuesten Commits in einem Zweig eines Projekts zu sehen, ist sehr nützlich. Sie können sehen, wer was und wann getan hat.

Diese Ansicht hilft Ihnen bereits dabei, sich über das Geschehen in Ihrem Code-Repository des Projekts auf dem Laufenden zu halten.

Ich habe diese Ansicht meistens zweimal am Tag verwendet, um zu überprüfen, welche neuen Commits hereinkommen, und wenn ich etwas sah, von dem ich dachte, dass es verbessert werden könnte oder das mir sehr gut gefiel, hinterließ ich einen Kommentar oder sprach direkt mit dem Commit-Autor.

Sag was du denkst

Commit details

Wenn du auf einen Commit klickst, kannst du sehen, was sich in welchen Dateien geändert hat.

Du kannst einen Side-by-Side-Vergleich durchführen und auch einen Kommentar hinterlassen. Du kannst dies für eine bestimmte Zeile oder für die gesamte Übertragung tun.

Es ist immer gut, auch zu kleinen Dingen Kommentare zu hinterlassen. Manchmal glaubt man, man könne hier einfach einen Tippfehler oder eine falsche Einrückung korrigieren, aber meistens finde ich es besser, einen Kommentar zu hinterlassen und dem Committer zu sagen, er solle ihn einfach korrigieren. Auf diese Weise versucht jeder, den Code zu verbessern, und man hat nicht das Gefühl, ein Cleaner zu sein.

Es ist auch nett, für ein sehr gutes Stück Code Kommentare zu hinterlassen. Auf der anderen Seite mag ich keine unhöflichen Kommentare, aber sie sollten kurz und genau sein. 

Die Übersicht verlieren

Interface of the app tower

Meiner Meinung nach ist es einfach, den Überblick über ein Projekt wie dieses zu behalten, wenn es weniger als 10-20 mittelgroße Aktivitäten pro Tag gibt. Es kann schwierig werden, wenn die Commit-Nachrichten schlecht sind oder es Commits gibt, die direkt miteinander in Verbindung stehen, aber das ist ein weiteres Problem, das mit der Verwendung von Git und der Arbeitsweise Ihres Teams zusammenhängt.

Meine Probleme begannen, als ich die Commits mehrerer Projekte und sogar mehrerer Zweige in einem Projekt überprüfen wollte. Weil ich mehr Zeit brauchte, um mich durch all diese Listen zu klicken und mich an das zu erinnern, was ich mir bereits angesehen hatte.

Wenn ich nicht direkt mit meinem Terminal arbeite, benutze ich Tower als Git-Client. Das hilft mir schon, einen besseren Überblick über Änderungen, Tags, Untermodule und alles andere zu haben. Vielleicht ist es nicht so schnell, wie im Terminal zu arbeiten, aber die bessere Übersicht macht mich effizienter, wenn ich im Team arbeite.

Ich habe mich an etwas erinnert

Interface of the app reeder

Vor einigen Wochen habe ich einen Artikel darüber gelesen, wie gut die Reeder-App für Mac geworden ist. Ich benutze diese App bereits auf meinem iPad und iPhone und ich liebe sie.

Gestern habe ich sie endlich wieder auf meinem Mac installiert und habe gesehen, wie perfekt die Steuerung ist. Man kann die Bedienfelder nach links und rechts streichen, die Lesbarkeit aktivieren und einen Artikel im integrierten Browser öffnen.

Nachdem ich meinen Fever-Account verbunden, eine Weile mit der App gespielt und mich entschieden hatte, dass ich sie weiterhin verwenden werde, erinnerte ich mich an etwas:

Gitlab hat Feeds!

RSS button in Gitlab interface

Oben rechts auf der Commit-Liste befindet sich ein kleines Feed-Symbol. Wenn du darauf klickst, erhältst du einen Atom-Feed, der eine Liste mit den grundlegenden Informationen zu den Übergaben enthält.

Jeder Eintrag enthält den Titel, die Beschreibung, das Datum, den Autor, den Projektnamen und den Zweignamen.

Du kannst die Url des Feeds kopieren und zu Ihrem bevorzugten Feed-Reader hinzufügen. Wie du dir denken kannst, habe ich das mit Reeder gemacht.

Einrichten der Feeds

Add account in reeder interface

Du kannst ein lokales RSS-Konto in Reeder hinzufügen, indem du in die Einstellungen gehst.

Dort fügst du es hinzu, indem du "RSS (lokal, keine Synchronisierung)" auswählst. Es hat einige Optionen, wie den Titel, wie oft es aktualisiert werden soll, wie die Elemente sortiert werden sollen und andere Dinge. Schauen Sie einfach nach, was für Sie passt.

Ich habe es so eingerichtet, dass es meine Feeds alle 30 Minuten aktualisiert und nur dann als gelesen markiert, wenn ich die manuell markiert habe. Du kannst es auch auf automatisch einstellen, aber auf diese Weise kannst du manchmal versehentlich eine Übergabe übersehen.

Hinzufügen eines Abonnements

Add new subscription dialog in reeder

Nachdem du das neue Konto hinzugefügt hast, kannst du die Einstellungen schließen und das Konto im linken Bereich auswählen.

Direkt daneben befindet sich ein Panel, das deine zukünftigen Abonnements enthält.

Füge ein neues Abonnement hinzu, indem du auf das kleine "Plus"-Zeichen am unteren Rand klickst.

Füge die Url, die du aus Gitlab kopiert hast, in den Dialog ein und klicke auf "Suchen".

Subscription details in reeder app

Reeder überprüft die Url und zeigt dir einige weitere Details über den Feed.

Wähle aus, in welchen Ordner du ihn ablegen möchtest und klicke auf "Abonnieren", um ihn zu deinen Abonnements hinzuzufügen.

Es hat funktioniert!

Gitlab feed in Reeder

Sie sollten jetzt ein Abonnement mit der Bezeichnung „Recent commits to [Projektname]" haben.

Das dritte Panel in Reeder zeigt dir die Liste der letzten Commits, die du bereits in Gitlab gesehen hast.

Wenn du auf ein Element klickst, erhältst du weitere Details über die Übertragung, du kannst es als gelesen markieren oder sogar mit einem Sternchen versehen, damit du es später überprüfen kannst. Commits, die du bereits angeschaut hast, sollten als gelesen markiert werden und werden nicht angezeigt, es sei denn, du machst auch gelesene Elemente sichtbar.

Wirf einen Blick auf die Einstellungen von Reeder, um zu sehen, wie du die App mit Gesten und Hotkeys steuern kannst. Das ist wirklich nützlich und macht dich viel schneller.

Füge so viele Abonnements für so viele Projekte und Zweige hinzu, wie du brauchst.

Wo ist der Code?

Commit details in Reeder

OK, jetzt kann ich wirklich schnell alle Commits durchgehen, die mich interessieren, aber ich möchte auch den Code sehen.

Reeder hat einen integrierten Browser. Streiche einfach nach links oder klicke auf den Titel des Commits, und es werden alle Panels nach links verschoben und Gitlab in einem Vorschau-Panel geöffnet.

Wenn du das zum ersten Mal machst, fragt Gitlab wie in jedem anderen Browser nach deinem Login. Danach öffnet sich die gleiche Commit-Ansicht, die du bereits vom Anfang meines Artikels kennst. Es verhält sich auch genau so. Du kannst Kommentare hinterlassen, herumklicken und jede andere Funktion nutzen, die Gitlab zu bieten hat.

Die Dinge sind viel besser geworden!

Auf diese Weise wurden meine Code-Reviews schneller und einfacher. Ich habe alle Funktionen von Gitlab, aber ich werde keinen Commit verpassen. Wenn Gitlab eine neue Funktion bekommt, bekommt mein Reviewsystem sie auch. Dasselbe gilt für Reeder.

Reeder zeigt dir auch die Anzahl der neuen Commits im Apps-Symbol an, wenn du willst. Aber es kann deaktiviert werden, wenn du nicht abgelenkt werden möchtest.

Du kannst natürlich jede beliebige Feed-Reader-Anwendung verwenden, die du willst.

Jede Rückmeldung dazu ist willkommen :)