Der Titel des Buches hört sich eigentlich recht spannend an, allerdings war ich skeptisch, schliesslich sind Patterns nicht per se an eine bestimmte Sprache gebunden, andererseits kann man mit Sprachen wie Ruby doch einiges anders machen als beispielsweise in Java. Schlusendlich hat mir mein Bruder die Entscheidung leichter gemacht und es mir einfach zu Weihnachten geschenkt. Danke!

design_patterns_in_ruby.png

Im Buch werden der Reihe nach rund die Hälfte der GoF-Patterns beschrieben und so umgesetzt, wie das wohl ein von Java kommender Ruby-Neuling tun würde. In weiteren Schritten werden die Implementierungen verbessert und Ruby-typischer gemacht. Beispielsweise kann man für einen Adapter einfach die bestehende Klasse öffnen und einen Alias für den benötigten Namen einfügen. Eine Implementierung des Command-Patterns kann man mit Blöcken sehr einfach gestalten, usw.

Bevor es an die Pattern geht muss man sich zuerst durch eine Ruby-Einführung kämpfen. Wie wenn es nicht bereits genug Ruby-Bücher und Tutorials geben würde! Stellt euch vor, in jedem Java-Buch hätte es noch eine Java-Einführung drin, das ist ja echt nicht nötig. Aber zum Glück kann mans ja einfach überblättern.

Die einzelnen Kapitel über die GoF-Patterns sind dann leider auch nicht besonders spannend, und je weiter ich mich durchquälte desto mehr fragte ich mich, wen das Buch überhaupt erreichen will. Leute die eine Ahnung von Design-Patterns und Ruby haben (dazu würde ich mich zählen) wohl eher nicht, denn auf die eleganteste Ruby-Umsetzung kommt man relativ schnell selbst. Wenn man keine Ahnung von Ruby hat, dann sollte man meiner Meinung nach sowieso erstmal die Sprache lernen, gleich mit Design-Pattern anzufangen halte ich für unnötig. Falls man von Design-Pattern keine Ahnung hat aber von Ruby, dann sollte man unbedingt zu einem richtigen Pattern Buch greiffen, denn die Erläuterungen sind eher knapp. Was bleibt noch für eine Zielgruppe? Ach ja, wenn man von beidem keine Ahnung hat. Dann ist das Buch wohl zu oberflächlich für beide Themen.

Immerhin werden die letzten drei Kapitel wieder etwas interessanter, dort geht es um Ruby-typische Pattern wie “Convention over Configuration”, interne DSLs und Meta-Programmierung. Schade, dass nicht das ganze Buch in diesem Stil war, es wäre eine deutlich interessantere Lektüre gewesen.

Vielen Dank nochmals an Robin, der mir das Buch geschenkt hat!