Nachdem ich zu ende des letzten Jahres in einen Bücher-Einkauf-Wahn verfallen bin, habe ich doch immerhin schön brav die Bücher durchgeackert und möchte nun meine erste Buchrezension schreiben.
Es handelt sich dabei um Clean Code von Robert C. Martin. Als ich die ersten Seiten des Buches gelesen habe, habe ich bereits meine ersten Erkenntnisse in einem Blogeintrag niedergeschrieben.
Einführung
Im ersten Kapitel nimmt Robert C. Martin kein Blatt vor den Mund. Er beschreibt sehr schön, wie schnell die Spezies Softwareentwickler die Schuld von schlechtem Code auf andere abschiebt (Zeitmangel, Chef usw.). Wir sind aber schliesslich die Profis und sollten dementsprechend unser Werk verteidigen.
Er beschreibt auch, warum wir uns so verhalten und warum es so schwierig ist guten Code zu schreiben. Erstens ist den meisten gar nicht bewusst, dass guter und sauberer Code längerfristig enorm wichtig ist und zweitens wissen viele auch gar nicht, was sauberer Code ist.
Wie mache ich es richtig
In den nächsten Kapitel beschreibt Martin sehr detailliert wie man es richtig macht.
- Wie wählt man aussagekräftige Namen für Variablen, Methoden usw.
- Wie sollten Funktionen strukturiert sein (Grösse, Komplexität usw.)
- Was sind gute und was sind schlechte Kommentare
- Wie sollte man seinen Code formatieren
- Der Umgang mit Objekten und Datenstrukturen
- Wie sollte man Error Handling anwenden
- Wie sollte man Schnittstellen verwenden
- Wie sollte man Klassen aufbauen
- Wie baut man ganze Softwaresysteme
- Warum benötigt man Unit Tests
Martin drückt auch klar aus, dass saubere Namensgebung, Unit Testing und Refactoring die zentralen Erfolgsrezepte für gute und vor allem langlebige Software sind.
Refactoring
Bis jetzt konnte man nur konsumieren. Im nächsten Teil des Buches muss man aber selber mitdenken. Martin beschreibt Schritt für Schritt, wie er Klassen von bekannten Projekten “refaktorisiert”. Dieser Teil bringt einem nur dann etwas, wenn man sich intensiv mit dem abgedruckten Code beschäftigt.
Code Smells
Im letzten Teil des Buches fasst Martin nochmals alle Code Smells (Dinge, die Code schlecht machen) zusammen, welche man während der ganzen Zeit erarbeitet hat.
Mein persönliches Fazit
Für mich ist dieses Buch unglaublich wertvoll. Im ersten Teil wurde mir bewusst gemacht, warum wir als Entwickler so reagieren, wie wir es tun. Und danach wird schön beschrieben, wie man es richtig macht.
Ich wusste immer, dass etwas falsch läuft beim programmieren und das ich bzw. meine Kollegen unsauberen Code schreiben. Nun kann ich endlich sagen, was es ist und wie man es besser macht. Das hilft auch bei Diskussionen mit Kollegen, wenn man ihren Code begutachtet und begründen kann, warum ihr Code nicht so “optimal” ist.
Da hat man doch direkt auch Lust, das Buch zu kaufen… Aber ich werde mich noch ein paar Wochen zurückhalten müssen, habe noch 2 andere Schinken durchzulesen…
Danke für die Zusammenfassung!
Ich hab heute morgen im Zug auch gerade das letzte Kapitel abgeschlossen und kann das Buch auch definitiv empfehlen, ist auf jeden Fall sein Geld wert (Englisch übrigends ein gutes Stück billiger: 15€).
Gerade die Code-Beispiele wo mal ein paar Klassen in mehreren Schritten immer mit Referenzen auf die in den anderen Chaptern genannten “Probleme” verbessert wurde fand ich sehr gut, auch wenn es irgendwann sehr anstrengend wurde sich immer wieder zig zeilen Code anzuschauen, das hat einiges an Zeit gefressen um dem ganzen auch immer folgen zu können.
Auch mir hat das Buch die Augen geöffnet. Vom Prinzip her sind es einfache Regeln, die Martin in seinem Buch anwendet. Aber selber kommt man meist nicht drauf. Ich habe mich beim Lesen oftmals erwischt wie ich in Gedanken sagte: “Ja klar! Logisch! Ist ja simpel!”
Aber wie so oft im Leben braucht man einfach einen kleinen Schubser um in die richtige Richtung zu laufen. Und genau den hat mir Clean Code von Robert C. Martin verpasst. Ich kann das Buch also auch uneingeschränkt empfehlen.
Gute Rezension!
Das Buch hat sich auch in meinem Arbeitsumfeld zu einer Art Bibel entwickelt.
Zusammen mit Martin Fowlers Refactoring und Martin C. Feathers Legacy Code ist man mehr als ausreichend gewappnet, nicht nur guten Code zu schreiben, sondern auch schlechteren Code kontinuierlich zu verbessern.
Danke für die Feedbacks. Das ermuntert mich wieder mal eine Rezension zu schreiben.
Refactoring habe ich bereits in meinem Besitz und Legacy Code ist schon auf Deutsch vorbestellt (Ich kann Inhalt auf Deutsch einfach besser verarbeiten).
Hab mir das buch auch vor einiger Zeit zu gemüte geführt – Fazit: sehr Empfehlenswert!
Was mich ja mal intressieren würde ist:
Was ist der Unterschied zwischen den Büchern “Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)” und “The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin)”?
Hi Mike
Ich habe bis jetzt nur das erst genannte Buch gelesen und dort geht es hauptsächlich um den Code.
Das zweite Buch (The Clean Coder) behandelt meines Wissens mehr den Menschen. Wie verhalte ich mich als Programmierer in den verschiedenen Situationen? (Projektmanagement, Schätzen, Umgang mit Managern und Kunden, Wie behalte ich den Fokus beim programmieren usw.)
@DaRaFF: Ahh ok – danke!
Pflichtlektüre für jeden seriösen Entwickler. Spannend von A-Z