Was bedeutet Clean Code im Projektalltag?
Der Begriff wird gern als Qualitätsversprechen verkauft und ebenso gern als Rechtfertigung für Umbauten benutzt, die niemand bestellt hat. Dieser Text sagt, was praktisch dahintersteckt — und was es Ihnen bringt.
Das lernen Sie
Warum Lesbarkeit Geld ist
Code wird einmal geschrieben und danach viele Male gelesen: bei jeder Änderung, bei jeder Fehlersuche, bei jedem Wechsel des Bearbeiters. Was beim Schreiben eine Viertelstunde spart, kann beim zehnten Lesen eine Stunde kosten.
Deshalb ist die Frage nicht „ist der Code schön", sondern: Wie lange braucht jemand, der ihn nicht geschrieben hat, um eine Änderung sicher vorzunehmen? Diese Zeit zahlen Sie bei jeder Erweiterung mit.
Fünf Eigenschaften, die man prüfen kann
// Schwer zu lesen: alles verschachtelt, nichts benannt
if ($a !== null) {
if ($a->getStatus() === 2) {
if (count($a->getItems()) > 0) {
// ... die eigentliche Arbeit, vier Ebenen tief
}
}
}
// Lesbar: Sonderfaelle zuerst, Fachsprache im Namen
if ($auftrag === null) {
return;
}
if (!$auftrag->istFreigegeben()) {
return;
}
if ($auftrag->positionen() === []) {
return;
}
// ... die eigentliche Arbeit, ohne EinrueckungEin Beispiel aus der Praxis
Wenn die Fachsprache fehlt
In einer übernommenen Anwendung hieß eine zentrale Methode `process()`. Sie prüfte den Bestand, legte einen Vorgang an, verschickte zwei Mails und schrieb ein Protokoll. Jede Änderung an einem dieser vier Teile bedeutete, die ganze Methode zu verstehen — und zu hoffen, die anderen drei nicht zu beschädigen.
Die Aufteilung in vier benannte Schritte hat keinen Buchstaben Fachlogik geändert. Sie hat die nächste Änderung von einem Risiko zu einer Routine gemacht. Das ist der ganze Punkt.
Wo der Begriff überreizt wird
„Das ist kein Clean Code" ist kein Argument, solange niemand sagt, welche konkrete Änderung dadurch teurer wird. Ein Umbau, der nur die Form ändert, hat einen Preis und keinen messbaren Nutzen — und er bringt das Risiko mit, funktionierendes Verhalten zu verändern.
Wir halten es deshalb so: Umgebaut wird, was gerade sowieso angefasst wird, und das in dem Umfang, den die anstehende Änderung braucht. Ein Umbau als eigenes Vorhaben braucht eine Begründung, die einen Namen hat — etwa eine Stelle, an der Fehler wiederholt entstanden sind.
Häufige Missverständnisse
Über den Autor
Fabian Lücker ist geschäftsführender Gesellschafter der PHP-Schmiede KG in Rheine und seit 2007 in der Softwareentwicklung tätig. Er verantwortet Entwicklung und Konzeption und schreibt hier über Entscheidungen, die in echten Projekten anfallen.