Das KISS Principle, Keep It Simple, Stupid, ist ein Designprinzip, das auf Kelly Johnson von Lockheed Skunk Works in den 1960er-Jahren zurückgeht und später von Robert C. Martin vertreten wurde: Systeme funktionieren am besten, wenn sie einfach bleiben. Es bevorzugt die einfachste funktionierende Lösung, Lesbarkeit statt Cleverness und keine Komplexität über das aktuelle Problem hinaus. Einfache Designs senken die kognitive Last beim Verstehen, Pflegen und Erweitern eines Systems; das Prinzip ergänzt YAGNI.
KISS Principle
Details
- Vollständiger Name
-
Keep It Simple, Stupid (auch: Keep It Super Simple)
- Auch bekannt als
-
KISS, Keep It Simple
Kernkonzepte:
- Einfachheit als Designziel
-
Systeme funktionieren am besten, wenn sie einfach gehalten werden; Komplexität sollte möglichst vermieden werden
- Over-Engineering vermeiden
-
Keine Komplexität, Abstraktionen oder Funktionen hinzufügen, die über das aktuelle Problem hinausgehen
- Lesbarkeit statt Cleverness
-
Code, der leicht zu lesen und zu verstehen ist, wird gegenüber ausgefeilten, aber undurchsichtigen Lösungen bevorzugt
- Einfachste funktionierende Lösung zuerst
-
Den geradlinigsten Ansatz implementieren, der die Anforderungen erfüllt, dann bei Bedarf verfeinern
- Reduktion der kognitiven Last
-
Einfachere Designs reduzieren den mentalen Aufwand, der erforderlich ist, um ein System zu verstehen, zu pflegen und zu erweitern
- Progressive Verbesserung
-
Einfach beginnen; Komplexität nur hinzufügen, wenn sie durch konkrete Anforderungen gerechtfertigt ist (ergänzt YAGNI)
- Schlüsselvertreter
-
Kelly Johnson (Lockheed Skunk Works, 1960er), Robert C. Martin ("Clean Code", 2008)
Wann zu verwenden:
-
Bei der Wahl zwischen einer einfachen und einer komplexen Lösung
-
Beim Überprüfen von Code auf Wartbarkeit und Lesbarkeit
-
Beim Entwerfen von APIs, Schnittstellen oder Datenmodellen
-
Beim Einarbeiten neuer Teammitglieder in eine unbekannte Codebasis
-
Beim Refactoring von Code, der unnötig komplex geworden ist
Verwandte Anker:
-
YAGNI - Nicht implementieren, was noch nicht benötigt wird (komplementäres Einfachheitsprinzip)
-
DRY - Redundanz eliminieren, um Codebasen einfach und konsistent zu halten
-
SOLID Principles - Strukturierte Richtlinien, die saubere, einfache Designs fördern