Clean Code ist ein Begriff aus der Softwaretechnik, der seinen Ursprung im gleichnamigen Buch von Robert C. Martin hat. Als „sauber“ bezeichnen Software-Entwickler in erster Linie Quellcode, aber auch Dokumente, Konzepte, Regeln und Verfahren, die intuitiv verständlich sind. Als intuitiv verständlich gilt alles, was mit wenig Aufwand und in kurzer Zeit richtig verstanden werden kann. Vorteile von Clean Code sind stabilere und effizient wartbarere Programme, d. h. kürzere Entwicklungszeiten bei Funktionserweiterung und Fehlerbehebungen. Die Bedeutung wächst mit der Beobachtung, dass im Schnitt 80 % der Lebensdauer einer Software auf den Wartungszeitraum entfällt.
Schwierigkeiten beim Entwickeln von Clean Code liegen
- häufig zunächst unklaren oder sich widersprechenden Anforderungen,
- zum Teil begründet im Fehlen von Erfahrung im Entwickeln von Clean Code,
- im Mangel an Disziplin beim Programmieren und
- im Aufwand nachträglicher Quellcode-Bereinigungen (dem sog. Refactoring).
Die Notwendigkeit Code nach der Entwicklung noch von unsauberen Stellen zu reinigen, wird häufig nicht gesehen oder vom Management nicht bewilligt, sobald das Programm seine vorgesehene Funktion ausübt. Ein direktes Schreiben von sauberem Code ist nahezu unmöglich, kann jedoch durch den bewussten Umgang mit den Prinzipien und Praktiken von Clean Code verbessert werden.
Eng verbunden mit dem Begriff Clean Code sind Maßnahmen, die bei der Entwicklung von Software zu sauberem Programmcode führen. So zahlreich wie die Gründe für unsauberen Code sind, so vielfältig sind auch die vorgeschlagenen Regeln in den aufgestellten Maßnahmenkatalogen. Dazu gehören:
- Quelltextformatierung (engl. code conventions),
- Entwurfsmuster (engl. design patterns),
- Konvention vor Konfiguration (engl. convention over configuration),
- eine umfangreiche Menge an Vorschlägen aus dem Buch Clean Code von Robert C. Martin.
Darüber hinaus gibt es seit einigen Jahren eine Clean-Code-Developer-Bewegung, die das Ziel verfolgt, ein einheitliches und umfassendes Regelwerk auf eine didaktisch ansprechende Weise in das Bewusstsein der Entwickler zu rücken und damit die Disziplin zu fördern, die Clean-Code-Maßnahmen im Programmieralltag auch tatsächlich anzuwenden. Als Maßnahme, diese Vorgehensweise zu üben, werden Katas vorgesehen.
Siehe auch
- Software Craftsmanship
- POLS, engl. Principle of Least Surprise, dt. Prinzip der geringsten Überraschung oder auch Prinzip der geringsten Verwunderung
- DRY, engl. Don’t Repeat Yourself, deutsch Wiederhole dich nicht
- YAGNI, engl. You Ain’t Gonna Need It, deutsch Du wirst es nicht brauchen
- KISS, engl. Keep it small and simple , deutsch Gestalte es klein und einfach
- SRP, engl. Single Responsibility Principle, deutsch Eine-Verantwortlichkeit-Prinzip
- CoC, engl. Convention over Configuration, deutsch Konvention vor Konfiguration
- LoD, engl. Law of Demeter, deutsch Gesetz von Demeter, beschreibt das Prinzip der Verschwiegenheit
Literatur
- Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall International, ISBN 978-0-13-235088-4.
Weblinks
- Homepage der Clean-Code-Developer-Initiative
- Google Group: Clean Code Developer
- Urs Enzler: Clean Code Cheat Sheet. (PDF) Abgerufen am 3. Februar 2014.
- Steven C. McConnell: Code Complete Checklists. (PDF) Abgerufen am 17. April 2013.