Code-Review in PHP: Was prüfen und wie man Feedback an Anfänger gibt

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Code-Review in PHP: Was prüfen und wie man Feedback gibt

\n\n

Code-Review ist nicht nur eine Formalität, sondern ein mächtiges Werkzeug für das Teamwachstum und die Verbesserung der Codequalität. Für angehende PHP-Entwickler wirkt der Review-Prozess oft einschüchternd: "Was, wenn ich einen Bug übersehe?", "Wie sage ich einem Kollegen, dass sein Code schlecht ist?". In diesem Artikel analysieren wir, worauf man bei der Überprüfung von PHP-Code achten sollte und wie man Feedback gibt, das nützlich und nicht verletzend ist.

\n\n

1. Was im PHP-Code prüfen: Eine Checkliste für den angehenden Reviewer

\n\n

Beginnen wir mit der technischen Seite. Hier sind die wichtigsten Kategorien, die man bei einem Code-Review eines PHP-Projekts überprüfen sollte:

\n\n
    \n
  • Sicherheit (Security) — der kritischste Bereich. Prüfen Sie, ob es SQL-Injection, XSS-Schwachstellen oder ungeschützte Eingabedaten gibt.
  • \n
  • Einhaltung von Codierungsstandards — PSR-1, PSR-12 (oder die Standards Ihres Teams). Das betrifft Lesbarkeit und Einheitlichkeit.
  • \n
  • Leistung (Performance) — vermeiden Sie unnötige Datenbankabfragen, ineffiziente Schleifen und schwere Operationen innerhalb von Schleifen.
  • \n
  • Architektur und Logik — Einhaltung der SOLID-, DRY- und KISS-Prinzipien. Wird Code dupliziert? Ist die Logik zu komplex?
  • \n
  • Fehlerbehandlung — Gibt es try-catch? Werden Ausnahmen korrekt protokolliert? Werden Fehler unterdrückt?
  • \n
  • Typisierung und Strenge — Verwendet der Code strict_types? Sind die Typen von Argumenten und Rückgabewerten korrekt angegeben?
  • \n
\n\n

Hier ist ein Beispiel für schlechten und guten Code aus Sicherheitssicht:

\n\n
<?php\n// SCHLECHT: anfällig für SQL-Injection\n$query = "SELECT * FROM users WHERE id = " . $_GET['id'];\n$result = mysqli_query($conn, $query);\n\n// GUT: Verwendung von Prepared Statements\n$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");\n$stmt->bind_param("i", $id);\n$id = (int)$_GET['id'];\n$stmt->execute();\n$result = $stmt->get_result();\n?>
\n\n

2. Wie man Feedback gibt: Prinzipien eines konstruktiven Reviews

\n\n

Der technische Teil ist die eine Hälfte. Die andere Hälfte ist die Fähigkeit, seine Anmerkungen so zu vermitteln, dass der Code-Autor sie korrigieren möchte, anstatt sich zu ärgern oder zu verteidigen.

\n\n

Grundregeln für Feedback:

\n\n
    \n
  • Sprechen Sie über den Code, nicht über die Person. Sagen Sie statt "Du hast schrecklichen Code geschrieben" lieber "An dieser Stelle gibt es eine potenzielle Schwachstelle, lass uns besprechen, wie wir sie beheben können".
  • \n
  • Verwenden Sie "Ich"-Aussagen. "Ich sehe, dass hier ein Fehler auftreten könnte, weil..." klingt sanfter als "Du hast einen Fehler gemacht".
  • \n
  • Erklären Sie das "Warum". Nicht einfach "Verwende Prepared Statements", sondern "Prepared Statements schützen vor SQL-Injection, weil sie Daten vom Abfragecode trennen".
  • \n
  • Bieten Sie Alternativen an. Zeigen Sie anstelle von "Das ist schlecht", wie man es besser machen kann.
  • \n
  • Loben Sie Gutes. Vergessen Sie nicht, gute Lösungen zu erwähnen: "Tolle Idee, die Validierung in eine separate Klasse auszulagern!".
  • \n
\n\n

Beispiel für einen konstruktiven Kommentar:

\n\n
<!-- SCHLECHTER Kommentar -->\n<!-- Warum verwendest du keine strenge Typisierung? Das ist doch Basiswissen! -->\n\n<!-- GUTER Kommentar -->\n<!-- Ich schlage vor, declare(strict_types=1) am Anfang der Datei hinzuzufügen. \nDadurch wird PHP gezwungen, Typen streng zu prüfen, und es werden versehentliche \nimplizite Konvertierungen verhindert, die zu Bugs führen können. -->
\n\n

3. Typische PHP-Code-Fehler, die man beim Review suchen sollte

\n\n

Hier ist eine Liste häufiger Probleme, die im Code von angehenden PHP-Entwicklern vorkommen. Achten Sie besonders darauf:

\n\n
    \n
  • Fehlende Validierung von Eingabedaten. Vertrauen Sie niemals $_GET, $_POST, $_REQUEST, $_FILES.
  • \n
  • Globale Variablen und superglobale Arrays innerhalb von Funktionen. Dies verletzt die Kapselung und er

Blogs

Buchempfehlungen