DRY, KISS und YAGNI: Drei Faustregeln für einfachen Code
Kurz: Drei Merksätze: Wiederhole dich nicht (DRY), halte es einfach (KISS) und baue nichts auf Vorrat (YAGNI).
Genauer: Die Abkürzungen fassen Erfahrung aus vielen Projekten zusammen. Sie ergänzen sich, können sich aber auch widersprechen. Sie sind Faustregeln für Entscheidungen, keine Gesetze, und lassen sich übertreiben.
Im Detail
DRY: Don’t Repeat Yourself
Jedes Wissen soll im System genau eine eindeutige Stelle haben. Wird eine Regel (zum Beispiel der Mehrwertsteuersatz) an fünf Stellen kopiert, müssen bei einer Änderung alle fünf gefunden werden, und eine wird vergessen. Statt zu kopieren, fasst man den Code in eine Funktion oder Konstante. Achtung: DRY meint Wissen, nicht zufällig ähnlichen Text. Zwei Codestücke, die gleich aussehen, aber aus verschiedenen Gründen sich ändern, sollte man nicht erzwungen zusammenlegen. Eine falsche Abstraktion ist teurer als etwas Duplikat.
KISS: Keep It Simple, Stupid
Die einfachste Lösung, die das Problem löst, ist meist die beste. Einfacher Code ist leichter zu lesen, zu testen und zu ändern. Warnzeichen: tief verschachtelte Bedingungen, „clevere“ Einzeiler, Muster ohne erkennbaren Nutzen. Frage dich: Versteht ein neues Teammitglied das in einer Minute?
YAGNI: You Aren’t Gonna Need It
Baue Funktionen erst, wenn du sie tatsächlich brauchst. Vorsorglich eingebaute Einstellungen, Erweiterungspunkte und Parameter kosten Zeit, müssen getestet werden und passen später meist doch nicht zum echten Bedarf. Das heißt nicht, Planung zu verbieten: Eine saubere Struktur macht spätere Erweiterungen leicht, ohne dass man sie schon baut.
Zusammenspiel
Ein Beispiel: Zwei Seiten brauchen eine ähnliche Tabelle. Sofort ein riesiges, konfigurierbares Tabellen-Framework zu bauen, verletzt YAGNI und KISS. Einmal kopieren und beim dritten Auftreten zusammenführen („Rule of Three“) ist oft der gute Mittelweg. Gutes Refactoring macht Code erst funktionierend und dann einfach.
Siehe auch: Clean Code, Refactoring, SOLID-Prinzipien