Buch-Rezension zu "Ruby in Practice"
"Ruby in Practice" von Jeremy McAnally und Assaf Arkin erschien im Mai 2009 bei Manning. Das selbstdefinierte Ziel des Buches ist es aus dem Leser einen produktiveren (Ruby-) Programmierer zu machen. In wie weit die Autoren dieses Ziel erreichen können hängt wohl primär vom Leser ab. Unbestritten ist aber die grosse Anzahl verschiedenster Tipps und Tricks die die Arbeit mit Ruby deutlich vereinfachen.
Teil 1: Ruby Techniken
Der erste Teil geht auf die grundlegenden Spracheigenschaften von Ruby ein. Diese kleine Repetition soll einem in Erinnerung rufen was Ruby eigentlich ausmacht. Es geht dabei aber nicht um eine Erklärung für Einsteiger. Es ist vielmehr ein Aufzeigen was man für Möglichkeiten bekommt weil Ruby so funktioniert wie es funktioniert.
Auch das Kapitel übers Testen beinhaltet nichts Revolutionäres. Es wird in einem kurzen Rundgang die einzelnen Ansätze gezeigt die einem zur Verfügung stehen. Dazu gehören neben Unit Tests auch Test Driven Development und Behavior Driven Development so wie eine ganze Packung an Werkzeugen (wie RSpec, Mocha oder rcov). Auch hier liegt der Schwerpunkt beim Aufzeigen der Möglichkeiten und nicht bei einem tiefgehenden Einführungskurs.
Im Kapitel „Scripting with Ruby“ beginnt das Buch auf die praktischen Anwendungsfälle detailliert einzugehen. Als erstes Problem gilt es eine aus diesen Teilen bestehende Aufgabe zu lösen:
- Verkleinern der hochauflösenden Ferienfotos
- Fotos mit einem Polaroid Effekt versehen
- Fotos in die Cloud von Amazon hochladen
- jede Stunde auf Twitter ein Foto veröffentlichen
Die einzelnen Teile sind einfach genug um sie zu erklären und zusammen komplex genug um viele Tipps und Tricks aufzeigen zu können. Das Auslagern von Benutzernamen und Passwort in eine eigene Konfigurationsdatei ist einer dieser simplen aber äusserst hilfreichen Tricks.
Teil 2: Integration und Kommunikation
Im 2. Teil drehen sich die Beispiele um die Integration von Drittsystemen. Sei dies in dem man Ruby on Rails Anwendungen erweitert, Webservices konsumiert oder E-Mails nutzt um Systeme neu zu starten.
Die Beispiele sind immer nach dem gleichen Muster aufgebaut:
- Beschreibung der Situation und was genau das Problem ist
- Erarbeiten einer einfachen und pragmatischen Lösung
- Diskutieren von alternative Lösungen und Ansätzen
Die Diskussion von Alternativen fand ich persönlich sehr gut. Nicht nur zu wissen wie man es auf eine Art machen kann sondern auch zu erfahren was sonst noch möglich ist finde ich äusserst hilfreich.
Teil 3: Daten und Dokumente
Der letzte Teil zeigt wie man Daten speichern und Dokumente verarbeiten kann. Als Datenquelle kann dabei von einer Datenbank bis zu XML- oder YAML-Dateien alles dienen. Zahlreiche Beispiele zeigen die verschiedenen Ansätze auf und in der Diskussion werden wiederum die Vor- und Nachteile eingehend betrachtet.
In diesem Teil wird ebenfalls die Identifizierung und Autorisierung von Benutzern behandelt. Dabei wird besonders Wert darauf gelegt das man Passwörter nicht im Klartext speichert. Es braucht nur wenigen Zeilen zusätzlichen Code und Rails speichert nur noch den Passwort-Hash (jeder mit individuellem Salt) ab. Dies ist ein ganz einfacher Tipp mit dem man die Passwörter effektiv schützen kann.
Aktualisierung willkommen
Die Programmiersprache Ruby entwickelt sich sehr schnell, gleiches gilt für die Werkzeuge und Bibliotheken rund herum. Einige der Beispiele funktionieren mit der aktuellen Ruby Version nicht mehr und andere sind nur mit grossem Aufwand zum Laufen zu bekommen. Eine Aktualisierung des Buches könnte diese Probleme beheben und auch auf die aktuellen Tools eingehen.
Fazit
"Ruby in Practice" ist ein Buch mit sehr vielen praktischen Beispielen. Die behandelten Themen werden so erklärt dass man das dort gewonnene Wissen auch bei anderen Problemstellungen wiederverwenden kann. Gerade die Diskussion der gewählten Lösung und möglicher Alternativen macht aus dem Buch weit mehr als eine Rezeptsammlung. Wenn es auch nicht mehr ganz aktuell ist so gibt das Buch doch sehr viele Ideen um Probleme aus einer anderen Richtung anzugehen.
Zum Buch
"Ruby in Practice" Jeremy McAnally and Assaf Arkin, 2009 Manning, ISBN 978-1-93398-847-4, 360 Seiten, Englisch