Was ist sauberer Code? (Clean Code)
Heutzutage ist Software in fast allem. In der Waschmaschine, im Smartphone, im Lichtschalter, in der Klimaanlage. Die Liste ist fast unendlich.
Das bedingt, dass Software mit sauberem Code oder wartbar geschrieben wird. Im Beitrag mehr dazu.
Der Start
Zum Start einer Softwareentwicklung ist alles noch ganz einfach.
Der Manager oder Kunde gibt dem Entwickler den Auftrag eine Anwendung zu schreiben.
Da es noch keinen Code gibt, kann man auch von einer “Grünen Wiese” sprechen, da man programmieren kann, wie man es will. Man muss andere Codeschnipsel oder ähnliches nicht berücksichtigen.
Es wird also wild drauf los programmiert.
Der Mensch denkt nicht in geraden Linien, oder zumindest nicht so wie es ein Computer am besten verstehen würde, sondern versucht eine Lösung zu finden, wie auch immer das gemacht wird.
Auch wenn hier ein Umweg programmiert wird und dort eine Art “Hack” verwendet wird, um es zum Laufen zu bringen.
Irgendwie läuft das Ganze dann nach zwei Monaten.
Der Auftraggeber ist super Happy. Es wurde alles so schnell entwickelt. Das muss ein super toller Entwickler sein!
Jedoch: Das Thema Clean Code, oder sauberer Code wurde nicht beachtet. Es ging nur darum, die Funktionalitäten – irgendwie – umzusetzen.
Das Add On
Jetzt kommt der Kunde nach zwei weiteren Monaten und sagt, ich möchte ein weiteres Modul programmiert haben.
Der Entwickler kann sich noch ein wenig daran erinnern, wie der Code geschrieben wurde und fügt das Modul schnell hinzu. Wenn auch mit vielen Hacks und Coding Tricks.
Aber wehe, man würde nur eine Karte aus diesem Kartenhaus verschieben, alles würde zusammenbrechen. Das sagt man dem Auftraggeber natürlich nicht.
Der Schein ist immer noch gewahrt. Alle sind Happy.
Nach zwei Jahren
Nach zwei Jahren werden weitere Entwicklungen geplant.
Nun kann sich der Programmierer, der das programmiert hat, nicht mehr daran erinnern, welcher Logik er denn genau gefolgt ist.
Ein Modul für welches zwei Wochen eingeplant ist, wird jetzt auch noch nicht in 6 Monaten fertiggestellt.
Der Auftraggeber wundert sich: Am Anfang ging doch alles so schnell? Hat der Entwickler die Motivation verloren? Was ist passiert?
Die Antwort: Es wurde bei der Softwareentwicklung nicht geplant. Und jetzt gibt es einen sogenannten Spaghetti Code, der irgendwie am Leben gehalten wird.
Der Entwickler wechselt
Nach drei Jahren entscheidet sich der Entwickler für einen Karrierewechsel.
Nun ist das Chaos perfekt.
Der neue Entwickler, der sich in die Software einarbeitet, hat keine Ahnung, was, wie und mit welcher Logik entwickelt wurde.
Nicht selten wird dieser neue Entwickler dann vorschlagen, alles von neu auf zu programmieren, um es dann besser zu machen.
Dieser wird jedoch dann wieder von der “Grünen Wiese” anfangen und die gleichen Fehler machen, welche der erste Entwickler gemacht hat.
Nur, dass man den Code nun zwei mal geschrieben hat.
Was kann man besser machen?
Es gibt ein Prinzip von dem Softwarespezialisten Robert Cecil Martin, auch Uncle Bob genannt. Er spricht von sauberem Code oder Clean Code.
Er geht davon aus, dass man zum Start sehr komplexen Code schreiben wird, einfach weil der Mensch genauso tickt. Ein Mensch wird nicht von Anfang alles richtig gut entwickeln. Sondern wird es so programmieren “das es funktioniert”.
Jedoch sollte man dann einen zweiten Schritt einbauen, bevor man weitermacht. -> Man soll den Code überarbeiten und schöner machen. Dabei kann man gut und gerne die gleiche Zeit verwenden, welche man auch für die Programmierung selbst gebraucht hat.
D.h. eine Stunde Entwicklung, dann eine Stunde “Code sauber” machen. In der Computersprache nennt man das auch Refactoring. Das Verhalten nach aussen der Software bleibt gleich, nur die Struktur des Codes verbessert sich.
Was ist Clean Code?
Hier ein paar Prinzipien, welche Uncle Bob beschreibt:
1) Sauberer Code (SC) ist einfach zu lesen
Bereits in der ersten Zeile des Codes kann man erkennen, um was es sich bei der Entwicklung handelt. Man muss nicht die komplette Software für eine Halbe Stunde und länger studieren, nur zu verstehen, um welche Funktionalität es sich handelt.
Die Software Zeilen werden also nicht für sich selbst geschrieben, sondern man denkt immer an die Person, welche es später vielleicht lesen wird. So dass es für diesen umso leichter wird, das Ganze zu verstehen.
2) SC ist simpel
Es werden keine komplizierten Hacks und Programmier Ansätze verwendet, nur weil der Programmierer daran Spass hat.
Es wird immer der einfachste Weg genommen, der einfach zu verstehen ist, funktioniert und simpel ist.
Auch wird es vermieden unnötig langen Code zu schreiben, der im Grunde genommen gar nich so komplex geschrieben werden müsste.
3) SC ist getested
Niemand schreibt perfekte Software, die fehlerfrei ist. Jede Software hat Bugs.
Daher ist es wichtig jeweils einen Test Code zu schreiben. So dass der spätere hinzukommende Entwickler weiss, dass es sich um funktionierende Software handelt und es eine einfache Testing Möglichkeit gibt, um zu überprüfen ob alles noch passt.
4) SC muss man sich antrainieren
Man sollte immer Clean Code schreiben. Auch wenn es ein Hobby Projekt ist, welcher von niemandem anders gesehen wird.
Es ist wie ein Muskel den man trainiert. Nur dann wird dieser mit der Zeit immer stärker.
Uncle Bob spricht auch von Code Kata. Kata ist eine Kampfsport, in welchem man die gleichen Schritte, immer wieder und wieder wiederholt, bis es perfekt sitzt.
So sollte man sich auch antrainieren immer sauberen Code zu schreiben.
Fazit
Der Softwareentwickler von heutzutage hat die Verantwortung sauber zu arbeiten. Denn Software ist in fast allen unseren unwichtigen, aber auch wichtigen Geräten.
In der Zukunft wird fast alles mit Software ausgestattet sein. Software muss also perfekt funktionieren, wenn alles reibungslos ablaufen soll.
Dafür muss jedoch zukunftsfähiger und wartbarer Code geschrieben werden. Auf dem auch mit Modulen und Erweiterungen aufgebaut werden kann.
Noch immer wird Software jedoch nach dem Prinzip “so schnell wie möglich erledigen” gebaut. Denn Budgets sind beschränkt, Zeit ist knapp und Entwickler haben meistens hohe Stundensätze.
Somit wird das Problem höchstwahrscheinlich in naher Zukunft nicht gelöst werden.
Dennoch: Uncle Bob sagt auch -> Irgendwann in der Zukunft wird ein grosses Chaos durch fehlerhafte Software entstehen und dann wird der Gesetzgeber einschreiten und Softwareentwicklung mit Gesetzen regulieren.
Bevor dass geschieht, sollten jedoch Softwareentwickler selbst, oder die Community selbst, die Gesetze und Richtlinien dafür schreiben. Welche dann vom Gesetzgeber übernommen werden können. So wie das bei den Ärzten, Anwälten und ähnlichen Gruppen bereits geschehen ist.
Was sind Ihre Erfahrungen?
Interessante Links:
Ein paar Tipps für sauberen Code
Bilder: Canva
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Schreibe einen Kommentar