Clean Code (Buch)

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

Post to Twitter

Veröffentlicht unter Bücher, Home | Hinterlasse einen Kommentar

PHP Unconference Europe 2011

phpuceu2010

Nach einer erfolgreichen PHP Unkonferenz in Hamburg Ende September (Dickes Danke!) steht nun Ort und Termin fest:

Die erste europäisch ausgerufene PHP Unconference wird am 19 und 20 Februar 2011 in Manchester / England stattfinden. Der Unkostenbeitrag beträgt 46 EUR.

Im Anschluss an die Ad-Hoc Konferenz am 21. und 22. Februar veranstaltet die The PHP Consulting Company ein zweitägiges Training mit Sebastian Bergmann, Arne Blankerts and Stefan Priebsch. Der Kostenbeitrag inkl. PHP Unconference beträgt 600 EUR. Die Teilnehmerzahl ist auf 15 Plätze begrenzt, wer Unconference mit einem ausgeibigen Training kombinieren will sollte nicht zu lange zögern.

Via: Save the date: PHPUnconference Europe 2011 on 19th & 20th Feb

Post to Twitter

Veröffentlicht unter Home, Veranstaltungen | Verschlagwortet mit , , , | Hinterlasse einen Kommentar

Streams: Wrap it up! Send it out!

Streams oder Streamwrapper sind ein Feature welches PHP bereits seit längerer Zeit kennt – und dennoch sind sie immer mal wieder für die eine oder andere Überraschung gut. Sie können recht universell eingesetzt werden um Dateien und Pfade zu abstrahieren, komplett sog. Streams (Fluss von Daten, z.B. eine Datei von ihrem Anfang bis zum Ende) abbilden und einiges mehr.

Dieser Artikel stellt Stream Wrappern in PHP vor und zeigt anhand von existierenden Anwendungs-Beispielen was alles so möglich ist. Weiterlesen

Post to Twitter

Veröffentlicht unter Home, PHP | Verschlagwortet mit , , | Hinterlasse einen Kommentar

Xdebug 2.1 veröffentlicht

Die praktische PHP-Erweiterung Xdebug ist in der Version 2.1 erschienen und kommt neben einigen Fehlerbehebungen mit einigen Neuerungen:

  • Error Collection: Fehler einfach aufsammeln und später kontrolliert ausgeben.
  • xdebug_get_headers(): Gibt alle bisher gesetzten HTTP-Antwort-Header zurück (egal ob per header() oder setcookie() gesetzt).
  • “Scream” Support: @-Operatoren zu Testzwecken ausschalten.
  • Und einiges mehr.

Die Xdebug Extension hilft beim Entwickeln in dem sie in einer einfachen Art und Weise zusätzliche Debug-Informationen bereitstellt. Daneben beinhaltet sie auch einen kompletten Debugger, der aus einer IDE wie Eclipse oder Netbeans genutzt werden kann.

Sie bietet also für beide Typen des Debuggen etwas: Sowohl für den “print_r() oder var_dump()-Typen” als auch den “interaktiven Typen”, der sich gerne mit Breakpoints durch den Code hangelt.

Release Notes

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit | Hinterlasse einen Kommentar

Barbecue der PHP-UserGroup Frankfurt

Am Sonntag den 27. Juni 2010 traf sich die PHP-UserGroup Frankfurt. 20 Interessierte hatten trotz Hitze und Fußballbegeisterung um 13 Uhr den Weg zum Niederräder Ufer gefunden. Ausgerichtet und gesponsert wurde der Event von spieletipps.de. Angemietet hatte man einen Platz auf der Maininsel in angenehmen Schatten, direktem Zugang zu kühlem Wasser.

Eingefunden hatten sich Gäste aus Frankfurt und Umgebung mit verschiedenen beruflichen und fachlichen Hintergründen. Allen gemein war die Affinität zum Netz – egal ob auf mobilen oder festen Endgeräten, als Selbstständiger, Angestellter, oder Chef. Das Knüpfen von Kontakten und der Austausch von Neuigkeiten stand im Vordergrund.

Nach rund 8 Stunden Barbecue, PHP und interessanten Gesprächen waren sich alle einig: es hat sich gelohnt. Die Veranstaltung verdient eine Fortsetzung.
Die Zwischenzeit wolle man nutzen die UserGroup ein wenig wiederzubeleben. Auch der Sponsor zeigte sich mit der Resonanz zufrieden. Gern wieder im nächsten Jahr!

Besonderen Dank: Thorsten Rühl, dem Geschäftsführer von Spieletipps als Sponsor und der PHPUG für einen gelungenen Event.

Vielen Dank an Thomas Meyer, für diesen Text.

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit , | Hinterlasse einen Kommentar

Eclipse PDT 2.2 erschienen

Vor einigen Tagen bereits ist die neue Version von Eclipse PDT erschienen – 2.2. Die mittlerweile in Eclipse Helios integrierte Entwicklungsumgebung kann mit vielen weiteren nützlichen Tools erweitert werden um das Schreiben von PHP Code zu vereinfachen. Die neuen Pakete stehen zum Download bereit.

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit , , | Hinterlasse einen Kommentar

Geek and Poke

Pair Programming - Geek and Poke

Mehr von und auf Geek and Poke.

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit , | Hinterlasse einen Kommentar

phpbbq2010

PHP BBQ 2010 FFM

Das PHP BBQ 2010 in Frankfurt am Main steht: Sonntag den 27. Juni ab 13:00 Uhr im Licht- und Luftbad am Niederräder Ufer. Die Teilnehmerzahl ist begrenzt, mehr Infos in der Mailingliste.

Post to Twitter

Veröffentlicht unter Home, PHP, Veranstaltungen | Verschlagwortet mit , | 2 Kommentare

Meine Agile Woche: Toyota und Tomaten

Verbesserungen jeglicher Art machen sich immer gut. Und Agilität hört sich schon fesch an. Doch was tun wenn die eignen “Produktionsstrukturen” auf das ganze tolle neue Zeugs nicht klarkommen weil irgendwie das ganze schon eher kompliziert oder gar oktroyierend daherkommt? Wenn diese ganzen “(Zeit)Management Tools” einem zu kompliziert sind? Mein Tipp diese Woche: Zeitmanagement mit Tomaten und Entwickeln in der Lean Production.

Pomodoro

Das Grundprinzip ist schnell erklärt: Kleine, regelmäßige Zeiteinheiten mit Pausenzyklen bei gleichzeitigem fixieren auf einzelne Arbeitsschritte. Die Pomodoro Technik eignet sich hervorragend zum Task oder Ticket orientierten Arbeiten oder iterativen Ansätzen (alles was nicht in 25 Minuten gecoded werden kann, muss man eh direkt neu refaktorieren).

Sie ist einfach und rockt. Das Beste daran: Es erfordert lediglich eine Eieruhr. Als Zyklus ist 25 Minuten plus 5 Minuten Pause angedacht, man kann also zwei Runden pro Stunde drehen wenn man die Pause nicht über dehnt. Ja und wenn 25 Minuten um sind, Hände von der Tastatur. Das ist jetzt verkürzt erklärt, es gibt natürlich ein Buch zu kaufen, das offizielle Set und so und Tonnen an Software:

The Pomodoro Techniqueâ„¢

Kanban

Kanban ist vielleicht einigen Leuten mit geschäftlichem Background ein Begriff. Das ganze für die Softwareentwicklung adaptiert, ergibt einen ausgeglichenen Weg (vielleicht wegen fernöstlicher Weisheit?) sich die Arbeit im Team zu organisieren.

Wer also statt mit den tendenziell eher stressigen extrem Programmieren komplette Prozesse umkrempeln will, dem bietet sich das von David J. Anderson adaptiere “Lean Production” Model an, das ganze mit mehr Flow angehen zu lassen. Ein deutschsprachiger Artikel findet sich in der iX Juni 2010.

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit , | Hinterlasse einen Kommentar

Eclipse, le ‘otte key

Auch wenn im Titel als Zend Studio bezeichnet, so kann es doch als Eclipse PDT gelesen werden (wie auch das erste Slide mal eben klarstellt). Soviel Lead verdient durchaus Aufmerksamkeit:

royganor / zend-studio Tips-und-Tricks (englisch; Adobe Flash, Javascript oder ein Slideshare Account benötigt)

Post to Twitter

Veröffentlicht unter Home | Verschlagwortet mit | Hinterlasse einen Kommentar