Code-Review verbessern: Beste Praktiken

Persönliche Produktivität
12 Lesezeit
0 view
0
Artyom Dovgopol profile icon
Artyom Dovgopol

Guter Code wird nicht allein geschrieben, er entsteht im Dialog. Gemeinsames Überprüfen von Änderungen hilft nicht nur dabei, Bugs zu finden, sondern macht das Produkt besser und das Team stärker. In diesem Artikel erfahren Sie, wie Sie Code-Reviews zu einem mächtigen Werkzeug für Wachstum und Qualität in der Entwicklung machen.

Wichtige Erkenntnisse

Symbol mit OK

Gute Reviews basieren auf einer Kultur des  gegenseitigen Respekts, Feedbacks und klarer Standards

Code-Reviews verbessern die Qualität und die Stabilität des Codes, indem sie Fehler und Bugs minimieren

Automatisierung und Iterationen machen den Review-Prozess schneller, verständlicher und nützlicher für das gesamte Team

Einführung

Meme über Code-Reviews

Stellen Sie sich vor, Code ist das Fundament Ihres Gebäudes. Je solider es ist, desto länger und zuverlässiger hält die Konstruktion. Code-Reviews wirken wie eine Reihe sorgfältiger Überprüfungen dieses Fundaments. Sie helfen dabei:

  • Die Codequalität zu verbessern. Das ist das Hauptziel. Ein externer Blick erkennt logische Fehler, potenzielle Bugs, Sicherheitslücken und Performance-Probleme, die der Autor übersehen haben könnte. Das Ergebnis ist stabilere und zuverlässigere Software. Eine direkte Verbesserung der Codequalität.
  • Wissen zu verbreiten. Wenn ein Entwickler den Code eines anderen prüft, sucht er nicht nur nach Fehlern, sondern lernt auch neue Ansätze, Muster und Projektbesonderheiten kennen. Dies ist eine wertvolle Form des Wissensaustauschs im Team, die das Onboarding neuer Mitglieder beschleunigt und die allgemeine Kompetenz steigert.
  • Einheitlichkeit sicherzustellen. Code-Reviews helfen, einen einheitlichen Coding-Stil, Struktur und Architekturentscheidungen beizubehalten. Das ist entscheidend für die langfristige Wartbarkeit des Projekts, besonders wenn mehrere Personen daran arbeiten.
  • Teamarbeit zu stärken. Code-Reviews sind ein Akt der Zusammenarbeit, keine Kritik. Sie schaffen eine Umgebung, in der Entwickler sich gegenseitig unterstützen, wachsen und sich weiterentwickeln. Das fördert ein geschlossenes und leistungsstarkes Entwicklerteam.
  • Technische Schulden zu reduzieren. Regelmäßige Reviews helfen, „schlechte“ Entscheidungen frühzeitig zu erkennen und zu korrigieren, bevor technische Schulden zu einer untragbaren Last werden.
  • Verantwortung zu erhöhen. Das Wissen, dass der eigene Code von Kollegen überprüft wird, motiviert natürlich dazu, qualitativ hochwertigeren, durchdachten und verständlichen Code zu schreiben.

Bereitschaft für das Review

Bevor Sie Ihren Code zur Überprüfung einsenden, stellen Sie sicher, dass er bereit ist. Das spart Zeit der Reviewer und macht den Prozess effizienter.

  • In kleine Teile aufteilen. Senden Sie keine riesigen Änderungen, die viele Dateien und Funktionen umfassen. Je kleiner und fokussierter die Änderung, desto leichter ist sie zu verstehen und zu überprüfen. Die optimale Größe eines Pull Requests liegt bei 100 bis 200 Zeilen verändertem Code. Bei größeren Änderungen versuchen Sie, diese logisch aufzuteilen.
  • Eigenständige Überprüfung. Führen Sie immer ein eigenes „Mini-Review“ durch, bevor Sie es absenden. Vergewissern Sie sich, dass der Code kompiliert, Tests bestanden sind und die Logik klar ist. Prüfen Sie Formatierung, Einrückungen, Variablen- und Funktionsnamen. Stellen Sie sich vor, Sie sind der Reviewer.
  • Umfassende Beschreibung. Geben Sie eine klare und vollständige Beschreibung Ihres Pull Requests. Erklären Sie, was Sie gemacht haben, warum Sie es getan haben, welche Probleme gelöst wurden und wie dies mit den Gesamtzielen des Projekts zusammenhängt. Geben Sie an, welche Aspekte besondere Aufmerksamkeit erfordern. Links zu Aufgaben im Task-Tracker sind obligatorisch.
  • Entfernen Sie kommentierten/unnötigen Code. Ihr Pull Request sollte nur sauberen, funktionalen Code enthalten. Auskommentierte Fragmente oder ungenutzte Variablen lenken nur ab und erschweren das Lesen.
  • Lokale Tests. Stellen Sie sicher, dass alle automatisierten Tests (Unit-Tests, Integrationstests) erfolgreich auf Ihrer lokalen Maschine ausgeführt wurden. Wenn es manuelle Tests gibt, die durchgeführt werden müssen, beschreiben Sie diese.

Kultur und Kommunikation

Effektives Code-Review dreht sich vor allem um Menschen, und erst danach um den Code. Die richtige Kultur und Kommunikation sind entscheidend, um den Review-Prozess zu verbessern.

  • Seien Sie konstruktiv. Das Ziel des Reviewers ist es zu helfen, nicht zu verurteilen. Konzentrieren Sie sich auf den Code, nicht auf den Autor. Vermeiden Sie Formulierungen wie „Du hast einen Fehler gemacht“, stattdessen verwenden Sie „Hier kann man verbessern“ oder „Was, wenn wir es so versuchen?“
  • Bieten Sie Lösungen an. Wenn Sie einen Mangel finden, versuchen Sie vorzuschlagen, wie man ihn beheben oder verbessern kann. „Hier ist es besser, forEach anstelle einer for-Schleife zu verwenden, um die Lesbarkeit zu erhöhen“ ist viel produktiver als einfach „Schleife ist schlecht“.
  • Fragen stellen statt befehlen. Manchmal ist es besser, eine Frage zu stellen, die den Autor zur richtigen Lösung führt, als direkt auf einen Fehler hinzuweisen. Zum Beispiel: „Hast du den Einsatz des Factory-Patterns hier in Betracht gezogen?“
  • Bleiben Sie konkret. Kommentare sollten klar und sachlich sein. Vermeiden Sie allgemeine Aussagen und unbegründete Behauptungen. Führen Sie Beispiele, Links zu Dokumentationen oder Codestandards an.
  • Achten Sie auf den Ton. In schriftlicher Kommunikation kann der Ton leicht missverstanden werden. Versuchen Sie höflich und respektvoll zu sein. Verwenden Sie Emojis oder persönliche Kommunikation, wenn das Risiko von Missverständnissen besteht.
  • Antworten Sie auf Kommentare. Der Codeautor sollte schnell auf Fragen und Kommentare des Reviewers antworten, seine Entscheidungen erläutern oder vorgeschlagene Änderungen annehmen. Auch wenn Sie nicht zustimmen, erklären Sie Ihren Standpunkt.
  • Danken Sie. Der Autor sollte dem Reviewer für die investierte Zeit und Mühe danken. Das stärkt eine positive Atmosphäre.

Fokus des Reviewers

Als Reviewer müssen Sie wissen, worauf Sie achten sollten. Effektives Code-Review erfordert einen systematischen Ansatz.

  • Funktionalität. Stellen Sie zunächst sicher, dass der Code das tut, was von ihm erwartet wird. Entspricht er der gestellten Aufgabe? Löst er das Problem?
  • Korrektheit und Logik. Gibt es logische Fehler? Werden Randfälle korrekt behandelt? Wie sieht es mit Fehlern aus, falls etwas schiefgeht (Nullzeiger, Division durch Null)?
  • Sicherheit. Gibt es potenzielle Sicherheitslücken (SQL-Injektionen, XSS, unsichere Verarbeitung von Nutzerdaten)?
  • Performance. Verursacht der Code Engpässe? Gibt es zu komplexe Algorithmen, die bei großen Datenmengen Probleme bereiten könnten?
  • Lesbarkeit und Wartbarkeit. Ist der Code leicht zu verstehen? Sind Variablen, Funktionen und Klassen gut benannt? Gibt es ausreichend Kommentare, wo nötig (aber nicht zu viele)? Entspricht der Code den Coding-Standards des Teams?
  • Tests. Sind Unit-Tests für neue Funktionalitäten vorhanden? Bestehende Tests bestehen? Fügt der neue Code Regressionstests für behobene Bugs hinzu?
  • Code-Duplikate. Gibt es Code, der bereits an anderer Stelle im Projekt existiert?
  • Architektur und Design. Passen die Änderungen zur Gesamtarchitektur des Projekts? Bringt der neue Code Anti-Patterns mit sich?

Halten Sie sich an die Checkliste für Reviews, um wichtige Punkte nicht zu übersehen. Und denken Sie daran, dass Reviews nicht dazu da sind, Code nach eigenen Vorstellungen umzuschreiben, sondern bedeutende Verbesserungen und Fehler zu finden.

Tools

Nutzen Sie moderne Werkzeuge zur Automatisierung der routinemäßigen Aspekte des Code-Reviews. So können Sie sich auf komplexere logische Aspekte konzentrieren.

1. Versionskontrollsysteme mit PR/MR-Unterstützung: GitHub, GitLab, Bitbucket bieten benutzerfreundliche Oberflächen zum Erstellen, Ansehen und Kommentieren von Pull Requests / Merge Requests. Das ist die zentrale Plattform für alle Diskussionen.

2. CI/CD (Continuous Integration/Continuous Delivery): Richten Sie automatische Prüfungen für jeden Merge Request ein. Das beinhaltet:

  • Automatisierte Tests: Unit-Tests, Integrations- und Funktionstests sollten automatisch ausgeführt werden.
  • Code-Linter und Formatter: Werkzeuge wie ESLint, Prettier, Black, SwiftLint prüfen automatisch den Stil und Standardkonformität des Codes und formatieren ihn. So wird der Reviewer von der Prüfung von Einrückungen und Klammern entlastet und kann sich auf die Logik konzentrieren.
  • Statische Code-Analyse: Tools wie SonarQube, Bandit (für Python), Semgrep entdecken potenzielle Bugs, Sicherheitslücken und Qualitätsprobleme frühzeitig.
  • Abhängigkeitsprüfung: Werkzeuge zur Analyse von Sicherheitslücken in Drittbibliotheken.

3. Vorlagen für Merge Requests: Erstellen Sie standardisierte Templates für PR/MR, die Pflichtfelder enthalten: Beschreibung der Änderungen, Link zum Ticket, Liste der ausgeführten Tests und Fragen für den Reviewer. So stellt der Autor alle notwendigen Informationen bereit.

4. Kommentartools: Viele Plattformen ermöglichen es, Kommentare direkt im Code an bestimmten Zeilen zu hinterlassen. Das macht die Diskussion kontextbezogener.

Der Einsatz dieser Tools beschleunigt und verbessert das effektive Code-Review deutlich, entlastet Entwickler von Routinearbeit und erlaubt, sich auf wirklich wichtige Aspekte zu konzentrieren.

Iterationen und Lernen

Der Code-Review-Prozess ist nicht statisch. Er sollte sich mit Team und Projekt weiterentwickeln.

  • Iterativer Ansatz. Erwarten Sie nicht, dass ein Review den Code perfekt macht. Mehrere Iterationen von Kommentaren und Änderungen sind normal. Wichtig ist das Streben nach kontinuierlicher Verbesserung.
  • Retrospektiven. Führen Sie regelmäßig Retrospektiven zum Code-Review-Prozess durch. Was funktioniert gut? Was kann verbessert werden? Welche Herausforderungen gibt es? Sammeln Sie Feedback von allen Beteiligten.
  • Schulung und Mentoring. Nutzen Sie Code-Review als Lerninstrument. Junior-Entwickler können von erfahrenen lernen, und Erfahrene können ihre Mentor-Fähigkeiten verbessern. Wenn jemand immer wieder dieselben Fehler macht, kann eine zusätzliche Schulung oder Pair-Programming helfen.
  • Anpassung der Regeln. Coding-Standards und Review-Regeln sind nicht in Stein gemeißelt. Sie sollten sich mit Projekt- und Teamwachstum weiterentwickeln. Scheuen Sie sich nicht, sie zu ändern, wenn das die Effizienz und Qualität steigert.
  • Nicht verzögern. Versuchen Sie, Reviews zügig durchzuführen, um den Autor nicht zu blockieren. Je länger ein Merge Request offen ist, desto schwieriger wird die Integration und desto höher die Wahrscheinlichkeit von Konflikten. Setzen Sie interne SLAs (Service Level Agreements) für Review-Zeiten.
  • Den Flow nicht unterbrechen. Review ist ein wichtiger Teil des Tages, sollte aber nicht die Hauptarbeit vollständig unterbrechen. Eventuell lohnt es sich, feste Review-Zeiten einzuplanen oder die Arbeit auf mehrere Reviewer zu verteilen.

Interessante Tatsache Symbol mit Augen

Die Entwicklung der ersten UNIX-Version in den Bell Labs in den 1970er Jahren beinhaltete eine frühe Form des Peer-Reviews: der gesamte Code wurde manuell überprüft und in Gruppen auf Tafeln diskutiert. Dies trug dazu bei, eines der zuverlässigsten Betriebssysteme der Geschichte zu schaffen.

Weiterlesen:

Für ein tieferes Verständnis der Produktivität lesen Sie den Artikel über Steigerung der Produktivität mit Kanban: Tipps für effektives Aufgabenmanagement

Um Burnout vorzubeugen, lesen Sie über Wie man Burnout vermeidet: Wesentliche Strategien zur Erhaltung des Wohlbefindens.

Für bessere Planung schauen Sie sich die Gantt-Diagramm Anleitung: Ein Leitfaden zur Verwendung von Gantt-Diagrammen im Projektmanagement an.

Fazit

Best Practices für Code-Reviews sind der Grundstein für qualitativ hochwertige Softwareentwicklung. Wenn Sie diese Empfehlungen umsetzen, verwandeln Sie das Code-Review von einer routinemäßigen Prüfung in einen dynamischen Wissensaustauschprozess, der zu zuverlässigeren, saubereren und innovativeren Softwareprodukten führt. Beginnen Sie noch heute mit der Anwendung dieser Prinzipien und erleben Sie, wie sich die Qualität Ihres Codes und die Arbeit Ihres Teams verbessert.

Empfehlenswerte Literatur Symbol mit Buch
Leitfaden zum Schreiben von sauberem Code

“Code Complete”

Ein ausführlicher Leitfaden zum Schreiben von sauberem und wartbarem Code mit Fokus auf die Bedeutung von Code-Reviews.

Auf Amazon
Buch, das das Schreiben lesbaren Codes lehrt

“The Art of Readable Code”

Das Buch lehrt, wie man Code schreibt, der leicht zu lesen und im Review-Prozess einfach zu prüfen ist.

Auf Amazon
Buch über den menschlichen Aspekt der Softwareentwicklung

“Team Geek”

Widmet sich dem menschlichen Aspekt der Softwareentwicklung: Teamarbeit, effektive Kommunikation und gemeinsames Code-Review.

Auf Amazon
0 Kommentare
Ihr Kommentar
to
Zurücksetzen
Hinterlasse eine Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr lesen

Alle Beiträge anzeigen
Image
imgBack to menu
imgBack to menu
Für Teams
Branchen
Unternehmenstyp
Alle Lösungen anzeigen img
Alle Lösungen anzeigen img
Alle Lösungen anzeigen img