Eine fixe, einheitliche Definition was Clean Code denn ist, die sich hier in einem Satz darstellen ließe, gibt es nicht. Im Wesentlichen ist man sich aber einig, dass ganz viel davon auf Robert C. Martin und sein Buch „Clean Code“ von 2009 zurückgeht. Für ihn ist Clean Code eine Denkschule, eine Art gemeinsames Wertesystem, dem sich Softwareentwickler verschreiben können. Was heute zusammengefasst unter Clean Code verstanden wird, darum geht’s in diesem Artikel!
Clean Code – Was ist das?
Clean Code soll, wie der Name schon sagt, sauber sein. Aber wann ist ein digitales Objekt, Textzeilen in verschiedenen Sprachen, denn sauber? Im Prinzip geht es darum, Code so zu schreiben, dass er ganz verschiedene implizite Anforderung erfüllt, neben den funktionellen. Also die Frage nach dem „Wie?“ und nicht nach dem „Was?“. Unter diese Anforderungen fällt z. B., dass Code intuitiv (für Developer) zu verstehen ist und keine gigantische Einarbeitungsphase von Nöten ist, um ein Softwareprojekt zu verstehen. Man könnte auch sagen: Lesbarkeit.
Weitere Merkmale umfassen:
- Einfachheit: Code soll kurz und simpel bleiben. Ein beliebter Merkspruch ist „Keep it simple, stupid“ (KISS). Wiederholungen im Code sollen durch schlankere, textärmere Lösungen ersetzt werden
- Konsistenz: einheitlicher Stil, Namensgebung für Klassen und Funktionen helfen, den Überblick zu behalten
- Dokumentation: Kommentieren, wo nötig – aber keine Romane schreiben!
- Fehlerfreiheit: gründliches Testen ist unerlässlich, um Funktionalitäten zu sichern und Fehler zu vermeiden
- Wartbarkeit: der gesamte Code ist so aufgebaut, dass leicht Änderungen vorgenommen werden können, ohne übermäßiges Einarbeiten und anschließendes Bug-Fixen
Warum Clean Code?
Die eben genannten Anforderungen kommen natürlich nicht aus dem Nichts. Was passiert denn, wenn man keine solchen Prinzipien befolgt? Knapp zusammengefasst: Wenn ohne Regeln und Prinzipien an Code gearbeitet wird, bildet sich nach und nach ein riesiger Knoten aus Codeschnipseln, deren Zusammenhänge und Funktionsweisen immer schwerer zu verstehen sind. Das gilt für die Person, die den Code ursprünglich geschrieben hat und erst recht für alle, die sich neu damit vertraut machen müssen.
Vorteile für Entwickler
Clean Code vereinfacht langfristig die Arbeit an einem Softwareprojekt, durch klare Standards, Regeln und Konventionen. Das erhöht zwar den initialen Aufwand, sorgt aber dafür, dass der Code einem nicht „über den Kopf wächst“. Letztlich macht man sich selbst und insbesondere Kolleginnen und Kollegen die Arbeit leichter. Warum? Weil ein gemeinsames Verständnis vorliegt, wie der Code gebaut werden soll. Die innere Logik sorgt für modulareren Code, der anpassungsfähiger ist. Darin liegt der Schlüssel zur langfristigen Nutzbarkeit und auch Übertragbarkeit des Programmcodes.
Vorteile für Kunden & Auftraggeber
Als Kunde interessiert besonders, ob das Programm die gewünschten Anforderungen erfüllt. Was interessiert mich, was da im Hintergrund abläuft? Nun, wenn sie vorhaben ihr Softwareprodukt viele Jahre zu nutzen und dabei weiterzuentwickeln, dann sollte sie das sehr wohl interessieren. Denn wie oben beschrieben, mit Clean Code ist für alle Parteien gesichert, dass der Code ein langes Leben hat. Dabei wäre es dann sogar zu verkraften, wenn ursprüngliche Entwickler abspringen, weil der sauber geschriebene Code die Einarbeitung neuer Entwicklung viel einfacher macht. Man bindet sich nicht so sehr an einen Dienstleister. Wenn die Entwickler Wert auf sauberen Code legen, dann legen sie Wert auf eine saubere eigene Arbeit; sie wollen ein hochqualitatives Produkt liefern – aus eigener Überzeugung. Auch das sollte für jeden Auftraggeber ein gutes Zeichen sein.
Qualitätssicherung
Im erweiterten Sinne könnte man sagen, Clean Code ist eine Form der Qualitätssicherung und das aus verschiedenen Gründen. Zum einen wird der Code so gestaltet, dass ihn auch externe Personen verstehen können – eine der Maximen von Clean Code Development. Zum anderen sagt es etwas über das Selbstverständnis der Entwickler aus – die wollen Qualität liefern und keine Quick & Dirty Lösung. Und, das ist vielleicht das Wichtigste, wenn Personen sich einer Clean Code Entwicklung verschreiben, gibt es Eckpunkte, an denen man das festmachen kann und qualitative Kritik üben, sollte es nicht so sein. Ja, es gibt unterschiedliche Vorstellungen, wann genau ein Code als Clean gelten sollte, aber zumindest in einigen Elementen werden sich alle einig sein.
Clean Code by Fluffy
Wir selbst sind überzeugt, dass Clean Code die sinnvollste Methode für nachhaltige Softwareentwicklung ist und arbeiten nach ihren Prinzipien. Qualität steckt bei Code sowohl in als auch zwischen den Zeilen; darin wie sie zusammenwirken, aufeinander folgen. Die Nachvollziehbarkeit, von dem, was wir produzieren, soll über einzelne Gehirne und unser Unternehmen hinaus gewährleistet sein. Das Ganze sollte nicht mit einer mittelalterlichen Zunft verglichen werden, aber etwas einheitlichere Vorstellungen, was guten Code denn ausmacht, würde Individuen und auch Unternehmen guttun; egal, ob man selbst entwickelt oder entwickeln lässt!
Ihr Ansprechpartner
Dr. Johannes Riesterer
Softwareentwicklung und Mathematik
+49 (0) 721 46711193
johannes.riesterer@studiofluffy.com