Einleitung: Warum ist Code-Review in PHP wichtig?
Code-Review ist ein Prozess, bei dem ein oder mehrere Entwickler den von einem Kollegen geschriebenen Code überprüfen, bevor er in den Hauptzweig des Projekts gelangt. Für angehende PHP-Entwickler mag diese Praxis einschüchternd wirken, aber in Wirklichkeit ist sie ein mächtiges Werkzeug für das Wachstum. Code-Review hilft nicht nur dabei, Fehler zu finden, sondern auch die Architektur, Sicherheit und Lesbarkeit des Codes zu verbessern. In diesem Artikel gehen wir darauf ein, worauf man bei der Überprüfung von PHP-Code achten sollte und wie man Feedback gibt, das nützlich und nicht verletzend ist.
1. Was im PHP-Code prüfen: Hauptkategorien
Um das Review strukturiert zu gestalten, unterteilen Sie die Prüfung in mehrere Schlüsselbereiche. Dies hilft, wichtige Details nicht zu übersehen und dem Autor klare Empfehlungen zu geben.
1.1. Syntax und Codierungsstandards (PSR)
Das Erste, was ins Auge fällt, ist der Codestil. Die PHP-Community hat die PSR-Standards (PHP Standards Recommendations) entwickelt, die das Lesen und die Wartung von Code vereinfachen. Prüfen Sie:
- Einhaltung von
PSR-12(Einrückungen, Leerzeichen, geschweifte Klammern). - Benennung von Klassen (CamelCase), Methoden und Variablen (camelCase).
- Keine überflüssigen Leerzeichen und Leerzeilen.
Beispiel für einen schlechten Stil:
class userController{function getUser($id){return $id;}}Beispiel für einen guten Stil (PSR-12):
class UserController{ public function getUser(int $id): ?User { return $id; }}1.2. Sicherheit
PHP ist eine Sprache, in der leicht Sicherheitslücken entstehen können. Achten Sie besonders auf:
- SQL-Injection: Verwenden Sie vorbereitete Anweisungen (PDO oder mysqli), anstatt Zeichenketten zu verketten.
- XSS (Cross-Site Scripting): Maskieren Sie die Ausgabe mit
htmlspecialchars(). - Typenprüfung: Verwenden Sie strenge Typisierung (
declare(strict_types=1);).
Beispiel für unsicheren Code:
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];$result = mysqli_query($conn, $sql);Sichere Variante:
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');$stmt->execute(['id' => (int)$_GET['id']]);1.3. Leistung und Logik
Prüfen Sie, ob der Code unnötige Operationen durchführt. Zum Beispiel:
- Vermeiden Sie Abfragen in Schleifen – verwenden Sie stattdessen JOINs oder Unterabfragen.
- Verwenden Sie
@nicht zum Unterdrücken von Fehlern – dies versteckt Probleme. - Prüfen Sie, ob Funktionen nicht zu viel tun (Prinzip der einzigen Verantwortung).
Beispiel für langsamen Code:
foreach ($userIds as $id) { $user = User::find($id); // N Abfragen}Optimierte Variante:
$users = User::whereIn('id', $userIds)->get(); // 1 Abfrage2. Wie man Feedback gibt: Regeln für Anfänger
Auch wenn Sie viele Fehler gefunden haben, ist es wichtig, die Informationen so zu präsentieren, dass der Autor sie nicht ablehnend aufnimmt. Hier sind einige Prinzipien.
2.1. Seien Sie konkret und objektiv
Schreiben Sie statt „dieser Code ist schlecht“: „In Zeile 12 wird SQL konkateniert, was zu einer Injection führen kann. Ich empfehle, dies durch eine vorbereitete Anweisung zu ersetzen.“ Erklären Sie warum dies ein Problem ist, und weisen Sie nicht nur darauf hin.
2.2. Verwenden Sie das „Sandwich“-Feedback
Beginnen Sie mit einem positiven Kommentar, weisen Sie dann auf Mängel hin und enden Sie mit einem konstruktiven Ratschlag. Zum Beispiel:
„Gut, dass Sie die Typisierung für die Argumente verwendet haben! Allerdings gibt die Methode getUser() einen String zurück, kein User-Objekt – dies kann die Typisierung an anderen Stellen brechen. Ich schlage vor, den Rückgabetyp auf User oder null zu ändern.“
2.3. Bieten Sie Alternativen an, anstatt zu kritisieren
Schreiben Sie statt „Entfernen Sie diesen Workaround“ auf