Code Review Checkliste
Eine strukturierte Checkliste hilft, Code Reviews konsequent und effizient durchzuführen. Dieser Artikel bietet eine umfassende Checkliste für alle Aspekte eines Pull Requests.
In a Nutshell
Code Review Checkliste: Prüfe Logik, Sicherheit, Performance, Tests, Dokumentation und Architektur. Kleine PRs, klare Beschreibungen und konstruktives Feedback sind Schlüssel zum Erfolg.
Kompakte Fachbeschreibung
Code Review Checklisten sind strukturierte Listen von Prüfpunkten, die sicherstellen, dass alle relevanten Aspekte eines Pull Requests systematisch betrachtet werden. Sie helfen Reviewern, konsistente Qualität zu gewährleisten, und Autoren, sich auf die wichtigsten Punkte zu konzentrieren. Eine gute Checkliste deckt funktionale Korrektheit, Sicherheit, Performance, Testabdeckung, Dokumentation und Architektur ab.
Die Checkliste
1. PR-Beschreibung und Kontext
- Klare Beschreibung: Was wurde geändert und warum?
- Ticket-Verweis: Issue/Task ist verlinkt
- Test-Strategie: Wie wurde getestet?
- Screenshots: Bei UI-Änderungen vorhanden
- Breaking Changes: Sind breaking changes dokumentiert?
2. Logik und Funktionalität
- Korrektheit: Tut der Code das, was er soll?
- Edge Cases: Grenzfälle und Fehlerfälle behandelt
- Fehlerbehandlung: Exceptions werden richtig behandelt
- Validierung: Eingaben werden validiert
- Ressourcen-Cleanup: Dateien, Verbindungen werden geschlossen
3. Sicherheit
- SQL Injection: Parameterisierte Queries verwendet
- XSS: Benutzereingaben werden escaped
- Authentifizierung: Nur autorisierte Zugriffe
- Sensible Daten: Keine Secrets im Code
- Input Validation: Alle Eingaben validiert
4. Performance
- Datenbank-Queries: N+1 Problem vermieden
- Caching: Wo sinnvoll, Caching verwendet
- Algorithmus: Effizienter Algorithmus gewählt
- Memory Leaks: Keine Speicherlecks
- Async Operations: Nicht blockierende I/O
5. Code-Stil und Lesbarkeit
- Namen: Aussagekräftige Variablen- und Funktionsnamen
- Funktionen: Klein, eine Verantwortung
- Kommentare: Nur für WARUM, nicht WAS
- Duplikation: DRY eingehalten
- Linter: Keine Linter-Fehler
6. Tests
- Unit Tests: Neue Logik ist getestet
- Integration Tests: API-Endpunkte getestet
- Edge Cases: Tests für Grenzfälle
- Coverage: Testabdeckung ausreichend
- Flaky Tests: Keine instabilen Tests
7. Dokumentation
- README: README bei Bedarf aktualisiert
- API-Docs: API-Änderungen dokumentiert
- Inline-Docs: Komplexe Funktionen dokumentiert
- Changelog: Changelog aktualisiert
- Migration Guide: Breaking Changes dokumentiert
8. Architektur und Design
- SOLID: Prinzipien eingehalten
- Kohäsion: Zusammengehöriges in einem Modul
- Kopplung: Lose Kopplung zwischen Modulen
- Abstraktion: Richtige Abstraktionsebene
- Scalability: Design skaliert mit Anforderungen
9. Git-Praktiken
- Commit-Messages: Konventionelle Commits
- Branch-Name: Deskriptiver Branch-Name
- Commits: Logisch zusammengehörige Commits
- Merge-Strategie: Rebase oder Merge konsistent
- WIP-Commits: Keine WIP-Commits im finalen PR
10. CI/CD
- CI grün: Alle Checks bestanden
- Build: Build erfolgreich
- Tests: Alle Tests bestanden
- Lint: Keine Linter-Fehler
- Security Scan: Keine Sicherheitslücken
Beispiel-Review
## Code Review: JWT Authentication
### ✅ Gut
- Klare Trennung von Auth-Logik und Controller
- Umfassende Unit Tests
- PR-Beschreibung ist detailliert
### ⚠️ Verbesserungen
- Secret sollte aus Umgebungsvariablen gelesen werden
- Token-Validierung könnte in einen Service ausgelagert werden
- Integration Tests für API-Endpunkte fehlen
### ❏ Fragen
- Warum wurde JWT statt OAuth2 gewählt?
- Ist der Token-Refresh-Flow implementiert?
### ✏️ Änderungen erforderlich
- [ ] Secret aus ENV lesen
- [ ] Integration Tests hinzufügen
Priorisierung
| Priorität | Kategorie | Fokus |
|---|---|---|
| Kritisch | Sicherheit, Logik | Blockiert Merge |
| Hoch | Performance, Tests | Sollte behoben werden |
| Mittel | Stil, Dokumentation | Kann nachgeholt werden |
| Niedrig | Nitpicks | Optional |
Prüfungsrelevante Stichpunkte
- Strukturierte Checkliste für konsistente Reviews
- Kategorien: Logik, Sicherheit, Performance, Tests, Dokumentation
- Priorisierung: Kritisch > Hoch > Mittel > Niedrig
- CI/CD-Integration als Quality Gate
- Breaking Changes müssen dokumentiert sein
FAQ
1. Was ist eine Code Review Checkliste?
2. Welche Kategorien gehören in die Checkliste?
3. Wie priorisiert man Feedback?
4. Was sind kritische Punkte?
5. Was gehört in die PR-Beschreibung?
6. Wie prüft man Sicherheit?
7. Wie prüft man Performance?
8. Was bei Tests?
9. Was bei Dokumentation?
10. Was bei Git-Praktiken?
11. Was bei CI/CD?
12. Wie lange sollte ein Review dauern?
13. Sollte jede Checkliste angepasst werden?
14. Was bei Breaking Changes?
15. Automatisierte Checks?
Weiter im Softwarequalität Lernpfad
Der nächste Artikel im Softwarequalität Lernpfad behandelt Static Code Analysis Tools — automatisierte Tools zur Code-Qualitätsprüfung wie ESLint, SonarQube und Pylint.
Quellen
- https://google.github.io/eng-practices/review/reviewer/
- https://github.com/features/pull-requests
- https://martinfowler.com/articles/code-review-checklist.html
Buchempfehlungen zur Softwarequalität
Wenn Du Dich weiter mit Code Reviews, Qualitätssicherung und Softwarequalität beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:
Software Engineering
Bücher über Softwarequalität, Clean Code, Code Reviews und Softwareentwicklungsprozesse
Clean Code: Programmieren in Java – Refactoring, Test-Driven Development und Clean Architecture von Robert C. Martin
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
Software Engineering: Umfassendes Handbuch für die Praxis
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
Refactoring: Wie Sie bestehenden Code verbessern von Martin Fowler
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.






