Skip to main content

Python-Code-Review-Tools

Artikel von

12. August 2022

0 Min. Lesezeit

Ein Code-Review ist ein Prozess, bei dem verschiedene Prüfungen und Tests zum Einsatz kommen, um sicherzustellen, dass der Code eine hohe Qualität aufweist, bevor er zusammengeführt wird. Bei einem Code-Review werfen erfahrene Entwickler einen zweiten Blick auf den Code und geben Entwicklern anhand ihrer größeren Erfahrung Orientierung.

Code-Reviewer suchen in verschiedenen Bereichen nach Verbesserungsmöglichkeiten:

  • Fehler: Code-Reviews können Fehler aufdecken, damit diese vor dem Einsatz in der Produktion behoben werden.

  • Lesbarkeit/Wartbarkeit: Code-Reviews bieten die Gelegenheit, Styleguides durchzusetzen und sicherzustellen, dass Entwickler zusammenarbeiten und die Arbeit der anderen verstehen können.

  • Effizienz: Code-Reviews umfassen Prüfungen, die sicherstellen, dass der Code schnell und effizient ausgeführt wird.

  • Sicherheit: Code-Reviews stellen sicher, dass der Code frei von Schwachstellen mit hohem Risiko ist.

Code-Reviews wurden zunächst manuell durchgeführt. Heute gibt es jedoch zahlreiche Tools, mit denen Entwickler den Review-Prozess automatisieren können. In diesem Beitrag behandeln wir die verschiedenen Arten von Code-Reviews, die Rolle der statischen Analyse, unsere acht besten Python-Code-Review-Tools und eine Checkliste, die Sie bei Ihren eigenen Code-Reviews unterstützt.

Arten von Code-Reviews

Es gibt verschiedene Arten von Code-Reviews, darunter manuelle Reviews, Unit-Tests und Linting. Sehen wir uns die einzelnen Arten kurz an:

Manuelle Reviews

Bei dieser Art von Review läuft der Prozess manuell ab. Ein Review-Team koordiniert die Schritte von Anfang bis Ende. Tools für die virtuelle Zusammenarbeit, mit denen Entwickler ihre Arbeit ansehen und teilen können, erleichtern manuelle Reviews.

Unit-Tests

Unit-Tests beruhen auf dem Prinzip, dass sich ein kleiner Codeabschnitt viel einfacher korrigieren lässt als ein großer. Unit-Tests sind in Python integriert und ermöglichen es Ihnen, Code in den kleinsten testbaren Einheiten zu analysieren. Entwickler können bestätigen, dass Codeabschnitte wie erwartet funktionieren, bevor sie mit dem restlichen Code zusammengeführt werden.

Linting

Linting ist eine Art Code-Review, bei der ein Linter den Code nach potenziellen Fehlern durchsucht. Da Linter den Code prüfen, ohne ihn auszuführen, gelten sie als einfache Tools für die statische Analyse.

Wie können Tools für statische Analyse Ihr Code-Review unterstützen?

Tools für statische Analyse übernehmen einen Großteil der Arbeit, für die bei einem Code-Review normalerweise eine sorgfältige Prüfung Zeile für Zeile nötig wäre. Bei längeren und komplexeren Projekten wird diese schnell mühsam.

Wie bereits erwähnt, sind Linter ein Beispiel für Tools zur statischen Analyse, die diesem Zweck dienen.

Die 9 besten Python-Code-Review-Tools

1. Pylint

Pylint ist ein in der Python-Community weit verbreitetes Open-Source-Tool und hochgradig konfigurierbar, sodass Sie Ihre Prüfungen vor dem Commit anpassen können. So können Sie etwa festlegen, wie sicher eine Warnung sein muss, damit sie angezeigt wird, oder Pylint so konfigurieren, dass es Vorschläge statt fehleranfälliger Meldungen anzeigt.

2. Snyk Code

Snyk Code ist ein Tool für statische Analyse, das Schwachstellen im Code aufdeckt, bevor dieser in die Produktion gelangt. So stellen Sie sicher, dass der geprüfte Code sicher ist und keine Sicherheitslücken in der Entwicklungspipeline weitergegeben werden.

3. GitHub

GitHub bietet ein integriertes Code-Review-Tool, das für jeden Pull Request einfache Code-Reviews durchführt. Darüber hinaus enthält GitHub weitere Funktionen, die Reviews unterstützen, darunter Diffs, den Verlauf und die Blame-Ansicht. Sie liefern verschiedene Einblicke in die Änderungen, die ein Codeabschnitt durchlaufen hat.

4. CodeScene

CodeScene nutzt maschinelles Lernen, um Bereiche mit mangelhafter Codequalität zu identifizieren und Verbesserungsvorschläge zu machen. Das Tool unterscheidet sich durch seine Verhaltensanalyse, die Einblicke in die Zusammenarbeit von Entwicklerteams bietet. So können Sie besser nachvollziehen, welche Faktoren zu technischen Schulden beitragen.

5. Collaborator

Collaborator ist ein Code-Review-Tool für Unternehmen mit hohen regulatorischen Anforderungen. Es bietet umfassende Review-Funktionen sowie detaillierte Berichte und elektronische Signaturen zur Einhaltung regulatorischer Vorgaben.

6. Codacy

Codacy ist ein automatisiertes Code-Review-Tool, das Python und mehr als 40 weitere Programmiersprachen unterstützt. Es zeichnet sich durch eine einfache GitHub-Integration, Funktionen zum Teilen, die eine zentrale Informationsquelle schaffen, sowie durch seine Open-Source- und Startup-freundlichen Grundsätze aus.

7. RhodeCode

RhodeCode vereint Sicherheitsprüfungen und Code-Reviews über Repositories hinweg, darunter Git, Subversion und Mercurial. Große, global tätige Unternehmen, die mehrere Repositories verwenden, profitieren von den Funktionen für Coding und Zusammenarbeit. Eine On-Premises-Version steht zum Download bereit. Für Unternehmen ist außerdem eine cloudgehostete Instanz verfügbar.

8. Reviewable

Reviewable ist ein GitHub-Tool mit umfangreicheren Funktionen als die integrierte Lösung von GitHub. Dazu gehören eine Kommentarfunktion, die vor dem Zusammenführen das Abschließen aller Diskussionsstränge erfordert, sowie eine Funktion, die mehrere Commits in einem einzelnen Pull Request verhindert.

9. Qodo Merge / PR Agent

Qodo ist eine GenAI-Code-Plattform und bietet sowohl Qodo Merge als gehostetes, automatisiertes Code-Review-Tool als auch den Qodo PR Agent. Dabei handelt es sich um ein Open-Source-Projekt, das LLMs nutzt, um Kommentare zu Pull Requests zu automatisieren und kontextbezogene Unterstützung bei automatisierten Code-Reviews bereitzustellen.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Checkliste für Python-Code-Reviews:

Wie wir gesehen haben, gibt es eine Vielzahl von Tools, die Python-Code-Reviews auf unterschiedliche Weise angehen. Trotz des Komforts, den diese Tools bieten, ist keines davon klüger als ein kompetentes Code-Review-Team. Hier sind einige Best Practices, die Ihr Team für bessere Python-Code-Reviews befolgen sollte:

  1. Anforderungen überprüfen

  2. Lesbarkeit des Codes

  3. Prozess für Pull Requests befolgen

  4. Code gemäß den Anforderungen

  5. Codesicherheit testen

  6. Dokumentation

1. Anforderungen überprüfen

Code-Reviews finden nicht im luftleeren Raum statt. Sie sollten vielmehr bei den Anforderungen Ihres Projekts ansetzen. Wenn diese klar formuliert sind, lässt sich sicherstellen, dass Ihr Code ein konkretes Problem löst.

2. Lesbarkeit Ihres Codes prüfen

Moderne Softwareentwicklung ist in der Regel Teamarbeit. Daher muss Code leicht lesbar und verständlich sein. So können andere Entwickler den Code pflegen, falls sein Autor das Unternehmen verlässt. PEP 8 ist ein weit verbreiteter Python-Styleguide (an dessen Erstellung auch Guido selbst beteiligt war!), der Python-Entwicklern dabei helfen soll, besser lesbaren Code zu schreiben.

3. Prüfen, ob der Pull Request (PR) dem grundlegenden Prozess entspricht

Es ist wichtig, den Prozess für Pull Requests einzuhalten, damit Teammitglieder bei der Codeprüfung gut zusammenarbeiten können. GitHub hat eigene Empfehlungen für Pull Requests, etwa den Zweck des Pull Requests und Vorgaben zum Feedback anzugeben. Diese Empfehlungen eignen sich als gute Vorlage für Ihren eigenen Prozess.

4. Sicherstellen, dass Ihr Code den Anforderungen entspricht.

Funktioniert Ihr Code tatsächlich? Bei jedem Review muss unbedingt geprüft werden, ob der Code die Anforderungen erfüllt. Außerdem sollte überprüft werden, ob er sich gut in das Gesamtprojekt integrieren lässt.

5. Code auf Sicherheitsprobleme testen

Mit agilen Entwicklungsmethoden und einem Shift-Left-Ansatz für Sicherheit sollte während des gesamten Entwicklungsprozesses früh und regelmäßig getestet werden. Entwickler sollten außerdem sichere Programmierpraktiken anwenden, um Probleme von Anfang an zu vermeiden.

6. Dokumentation

Ein entscheidender Aspekt der Codequalität ist die Wartbarkeit. Sie beschreibt, wie einfach jemand außer dem Autor den Code pflegen oder aktualisieren kann. Damit andere Entwickler verstehen, was der Code tut, ist Dokumentation wichtig. Dazu gehören selbstdokumentierender Code, der einfach genug ist, um für sich selbst verständlich zu sein, und Docstrings nach der Definition einer Funktion oder Klasse, wenn der Code komplexer ist.

Weitere Tipps finden Sie in unserem Beitrag zu Best Practices für Code-Reviews.

Lernen Sie weiter:

Spickzettel zu Best Practices für Python-Sicherheit

Java-Code-Review-Tools

Code-Sicherheitsaudit

Häufig gestellte Fragen

Warum sollten Sie ein Code-Review-Tool für Python verwenden?

Entwickler automatisieren Aufgaben am liebsten so weit wie möglich – Code-Reviews bilden da keine Ausnahme. Mit Code-Review-Tools lassen sich umfangreiche Projekte mit Dutzenden Entwicklern überprüfen. Sie ermöglichen es Ihnen, Code zu testen, ohne ihn auszuführen, und geben Ihnen die Sicherheit, einen Pull Request zusammenzuführen.

Wie läuft ein Python-Code-Review ab?

Ein Python-Code-Review beginnt damit, die Anforderungen an den Code klar zu definieren. Anschließend wird geprüft, ob diese Anforderungen erfüllt sind (d. h., ob der Code tatsächlich funktioniert). Darüber hinaus werden Aspekte wie Lesbarkeit, Sicherheit und Dokumentation berücksichtigt. Der Prozess ist grundsätzlich manuell, doch zahlreiche Tools unterstützen Entwicklungsteams bei Code-Reviews.