Was ist der Unterschied zwischen „gutem Code“ und „schlechtem Code“?
Die einfachste Antwort wäre: „Guter Code lässt sich kompilieren, schlechter Code nicht.“ Grundsätzlich stimmt das, reicht aber nicht aus.
Also nocheinmal: Was unterscheidet guten von schlechtem Code?
Machen wir eine Übung: Da es uns häufig leichter fällt, zu kritisieren als zu loben, sammeln wir Stichpunkte, was schlechten Code ausmacht. Frage dazu deine Freunde, Kollegen usw.
Ich habe das mal gemacht. Dabei ist folgende Liste herausgekommen:
- doppelter Code
- lange Funktionen, große Klassen
- Spaghetti-Code ( Verwendung von GOTO)
- viele verschachtelte Strukturen
- immer wieder Switch-Case-Verteiler
- viele Abhängigkeiten
- Code widersetzt sich jeder Änderung
- eine Funktion macht mehr als sie soll
- schlecht lesbarer Code (seltsame, unaussprechliche Namen; doppelt negative Logik)
- viele Kommentare
- komplizierter Code
- „magic Numbers“ = verwenden von Zahlen im Code
- Funktionen mit vielen Übergabeparametern

Jetzt wissen wir, was schlechter Code ist. Dadurch wissen wir auch, was guter Code ist: Code, bei dem genau das nicht auftritt.
Diese Liste ist bestimmt nicht vollständig, aber wir haben jetzt schon einmal eine grobe Idee, was der Unterschied ist. Dieses Wissen ist wichtig, weil es uns hilft unseren Code selber einzuschätzen und daran zu arbeiten, guten Code zu schreiben.
Wie schreibe ich guten Code?
Vermeide die o.g. Punkte und alles wird gut. – Ja wenn das so einfach wäre.
Also, wie mache ich das? – Mein Rat: Fange mit kleinen Schritten an. Nimm dir einen Punkt vor und setze ihn um. Darauf konzentrierst du dich eine Zeit lang (Tage oder Wochen). Wenn du es verinnerlicht hast und es dir in Fleisch und Blut übergegangen ist, nimmst du dir das nächste vor.
Das ist die Idee bei Clean Code. Es gibt dort einzelne Prinzipien und Praktiken, die dir helfen, deinen Programmierstil in kleinen Schritten zu verbessern, so dass du guten – = sauberen – Code schreibst.
Ich werde in nächster Zeit einige Clean Code Prinzipien und Praktiken hier vorstellen.
Wenn du nicht so lange warten willst, empfehle ich dir
- das Buch „Clean Code“ von Rober C. Martin oder
- die Webseite clean-code-developer.de