Anmerkung, vorangestellt: Ungern möchte ich mit dieser Buchsprechung auf einen Hype irgend einer Art aufspringen auch wenn wir alle voll agil sind. Viel mehr möchte ich eine Empfehlung aussprechen, die ich sonst auch befreundeten Entwickler mitteile.
Bereits 2009 ist der Titel beim MITP Verlag in der deutschen Übersetzung veröffentlicht worden. Ich selber habe es im Anschluss an die Froscon dieses Jahr gelesen und seitdem verliehen.
Mir fiel ziemlich schnell auf, dass die Übersetzung verdammt gut ist. Selten habe ich ein Fachbuch mit so gutem Deutsch gelesen. Mühelos werden die sonst oft im englischen bekannten Fachtermini und Umschreibungen so ausgezeichnet dem Leser vermittelt. Dies kommt dem Werk sehr zu Gute. Bezeichnenderweise wurde darauf verzichtet den Buchtitel “Clean Code” einzudeutschen. Sicherlich eine gute Entscheidung, was wäre sonst dabei heraus gekomment?
Sauberer Code?
(wie im Untertitel angedroht?)
Das Buch geht einen anderen Weg. Hier geht es nicht um abstossende Dinge wie klinische Reinheit. Es geht um die eigene Praxis mit all ihren Widersprüchen. Vom waten durch den Code-Morast ist am Anfang die Rede. Ein wunderbares Bild. In einzelnen Kapiteln werden Analyse und Betrachtung zu verschiedenen, aber immer allgemeinen Themen der Programmierung von mehreren Autoren bearbeitet. Und immer geht es um den Programmcode: Wie wird er geschrieben? Und warum?
Das Warum ist ein zentraler Bestandteil der Analyse die das Buch versucht zu treffen: Warum schreibe ich Code so und nicht anders. Und was ist dieser geliebte “clean code”, den jeder doch versucht zu erreichen. Die perfekte Reinheit als Bild kunstfertigen Ausdrucks der eigenen Arbeit. Mit dieser Fragestellung konfrontieren sich die Autoren und somit auch der Leser.
Mehreren Autoren zu jeweils einem bestimmten Thema bieten ihre Einschätzung an. Dabei geht es nicht um die Eigenheiten einer spezielle Programmiersprache (obwohl im Buch oft Java Code auftaucht) sondern mehr um allgemeinere Fragen: Wie bennene ich Variabeln oder Funktionen? Wieviele Parameter sollte eine Funktion haben? Bis hin zum Testen von Multithread-Programmen, falls die vorgenannte Beispiele zu profan erscheinen sollten.
Apropros Java Code: Für PHP Entwickler eignet sich das Buch (sehr) gut. Man könnte zwar auf mancherlei Eigenheiten von Java neidisch werden (wie, ich muss nicht dauernd $this tippen?), die Code-Beispiele sind mit ein wenig Erfarung in objektorientierter PHP Programmierung problemlos nachzuvollziehen, auch ohne Java Background.
Dabei werden sämtliche Punkte umfassend umschrieben. Das ist bei dem eher allgemeinen Charakter der einzelnen Themen besonders wichtig. Die Suche nach Namen für Variabeln oder Funktionen zum Beispiel. Der Autor hat sich Gedanken zur Namensgebung gemacht und bringt dies Anhand von Beispielen aus der historischen wie aktuellen, auch der eigenen, Programmierung zusammen. Einfache aber wichtige Dinge sind einfach zu verstehen.
Ein anderes Beispiel: Testgetriebene Entwicklung oder Test Driven Development: Selten habe ich eine so anschauliche und trotzdem kurze und einfache Einführung in das Thema gelesen. Oder wer hat gerade mal eine tatsächliche Auswertung über die Länge der gemeinen Programmzeile bereit? Ja klar, ein Terminal hat 80 Zeichen aber auf dem C64 war das mal 40×25. Was sind die Kriterien von heute? Gibt es noch welche? Was ist gebräuchlich?
Praxisteil oder Übungen gibt es auch, allerdings nicht so pädagogisch wie in der “Von Kopf bis Fuss Reihe”. An Beispielcode wird eine komplette Refactorisierung erläutert. Auch diese kann man gut lesen. Und jedes Kapitel hat eine kleine Illustration am Anfang
Clean Code ist fundiert, gut geschrieben und verdammt informativ/lehrreich. Und bestimmt keine Veröffentlichung aus einem Hype heraus. Gefühlte 200 Seiten die man dann zügig gelesen hat. Und nachdem man das Buch verleihen hat erinnert man sich an einige Punkte die man dann doch nochmal nachschlagen möchte. Für ein Buch welches doch recht allgemeine/abstrakte Themen behandelt sicherlich bezeichnend, schliesslich ist es ja kein Nachschlagewerk im technischen Sinne.
Ein Freund berichtete mir von der PHPUnconf in Hamburg dieses Jahr der dort ein wenig Enttäuscht aus einem Vortrag zu “Clean Code” (als Thema für sich, nicht dem Buch) kam. Es war wohl alles ein wenig starr in Regeln gefasst und entsprechend dröge. Das Buch ist das Gegenteil davon. Es warnt sogar davor: Es geht nicht darum irgendwelche Schüttelreime oder Kluge Sprüche parat zu haben sondern Fragen an die eigenen Programmierung zu beantworten, ja beantworten zu können, zu verstehen. Hier ist es ein fundierter Beitrag zur eigenen Auseinandersetzung. Mit einem ausgewiesenen Praxisteil.
Mein Fazit: Programmierer sollten Clean Code studieren. Schadet nicht, hilft nur. Vielleicht nicht für die blutigsten Anfänger, aber hier geht es um wichtige, allgemeine Themen der Programmierung und man kann sich mit dem Titel sehr gut weiterbilden. Es nimmt einem nicht die Arbeit ab, sich mit den Eigenheiten einer konkreten Programmiersprache auseinander zu setzen, dennoch beantwortet es viele Fragen und bietet somit eine Hilfestellung in der täglichen Arbeit – egal ob alleine oder im Team.
Martin, Robert C.
Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Zahlreiche Fallstudien, Best Practices, Heuristiken und Code Smells.
MITP Verlag
475 Seiten
ISBN-13: 978-3-8266-5548-7
Preis: 39,95 EUR


