Rezension zu „Webanwendungen mit Ruby on Rails“

Webanwendungen mit Ruby on RailsJan Krutisch und Ramon Wartala haben mir freundlicherweise ein Exemplar ihres Buches „Webanwendungen mit Ruby on Rails“ zukommen lassen. Da ich grade keine Zeit hatte, war Lutz so freundlich, sich der Lektüre und der folgenden Rezension anzunehmen, enjoy!

Aufbau

Das Buch umfasst insgesamt ca. 300 Seiten und gliedert sich in sechs Kapitel plus Anhang, die wiederum in Unterabschnitte aufgeteilt sind. Nach einem kurzen Einleitungskapitel (das auch so heißt) geht es über Ansätze zur Projektplanung und -vorbereitung zu den Grundlagen in Form von Rails-Installation und -konfiguration unter Windows, MacOS und Linux sowie der Einrichtung einer Arbeitsumgebung. Es werden verschiedene Editoren und IDEs kurz vorgestellt, für den weiteren Verlauf des Buches fällt die Wahl seitens der Autoren dabei auf RadRails.

In Kapitel 4 starten die Autoren mit einem Beispielprojekt (eine webbasierte Bibliotheksverwaltung), das den Leser durch das restliche Buch begleitet und anhand dessen diverse Aspekte der Rails-Entwicklung in der Praxis erklärt werden. Die Bandbreite deckt so gut wie alle Bereiche ab, die bei der Entwicklung eines Rails-Projektes relevant sind, die entsprechenden Stichworte in der Reihenfolge ihrer Behandlung im Buch sind: Scaffolding, Migrationen, Validierung, Tests, Routing, REST, Authentifizierung, Filter, Sessions, AJAX, Webservices, Internationalisierung und Lokalisation, Auslieferung - alle jeweils noch mit diversen Unterpunkten.

Im fünften Kapitel geben die Autoren darauf aufbauend einige Hinweise zur tiefergehenden Verwendung von ActiveRecord und ActionView und erklären die Installation und Nutzung von Plugins. Kapitel 6 geht daraufhin noch einen Schritt weiter und zeigt Möglichkeiten, wiederkehrenden Anforderungen an die eigenen Applikationen mit selbstgeschriebenen Plugins und Generatoren zu begegnen, die dann ggf. auch an Dritte weitergegeben werden können.

Der abschließende Anhang liefert neben einer Kurzeinführung in Ruby (“Ruby für Rails”) tabellarische Auflistungen der wesentlichen Rails-Werkzeuge (Rake-Tasks, Skripte, Generatoren, Plugins, Migrationen, Capistrano-Tasks) mit Aufruf-Syntax und Beschreibung, die so als Kurzreferenz dienen können. Ergänzt wird dieser Abschnitt durch ein HowTo zur Installation und Konfiguration eines kompletten Testssystems auf Linux-Basis, das den Hosting-Rechner simulieren soll. Den Abschluss bilden das Inhaltsverzeichnis der beiliegenden DVD (enthält Entwicklungskomponenten für Window, Mac OS X und Linux, alle Listings und ein VMWare-Image mit kompletter Rails-Entwicklunsumgebung) sowie ein Quellenverzeichnis mit vielen Links zu weiterführenden Informationen im Internet.

Zielgruppe

Nach Aussage der Autoren liegt die Zielgruppe des Buches in der Schnittmenge aus Umsteigern von anderen Programmiersprachen und Frameworks zur Webentwicklung sowie auch Neulingen in diesem Bereich. Ich persönlich bin allerdings der Meinung, dass dieses Buch für den Einsteiger nur bedingt geeignet ist, weil doch einige Vorkenntnisse zu Themen vorausgesetzt werden, die - allein schon bedingt durch den seitenmäßig begrenzten Umfang des Buches - öfter nur angeschnitten werden können. Ich würde sogar soweit gehen, zu behaupten, dass auch jemand, der bereits Erfahrungen in der Webentwicklung vorweisen kann, ruhig schon ein anderes Rails-Einsteigerbuch (z.B. ”Praxiswissen Ruby on Rails” von Denny Carl) gelesen haben sollte, bevor er sich “Webanwendungen mit Ruby on Rails” zu Gemüte führt - zumindest aber das eine oder andere Einstiegstutorial. Diese thematische Ausrichtung hat aber für den leicht fortgeschrittenen Leser den Vorteil, dass er nicht zum wiederholtesten Male die üblichen Einstiegskapitel in epischer Breite durchlaufen (oder weiterblättern…) muss, sondern sehr schnell einen tiefergehenden Einblick in die vorgestellten Bereiche bekommt. Zur umfassenden Behandlung bleibt zwar häufig nicht der Platz aber es finden sich mindestes sehr gute Ausgangspunkte, um sich zu spezifischen Schwerpunkten mit Sekundärliteratur zu versorgen.

Kritikpunkte

Viel zu meckern gbt es bei diesem Buch nicht, es sind vielmehr ein paar Kleinigkeiten und Ungereimtheiten, die mir in diesem Zusammenhang aufgefallen sind: Bezugnehmend auf die oben behandelte Zielgruppenausrichtung empfand ich stellenweise ein etwas uneinheitliches Anspruchsniveau: mal wird gut zwei Seiten (plus zwei schematische Abbildungen) lang zum ca. 1000sten Mal erklärt, was unter AJAX zu verstehen ist und wer den Begriff geprägt hat, dann werden wiederum komplexe Rails-Zusammenhänge sehr zackig in zwei Sätzen abgehandelt und sind für Einsteiger so sicherlich schwer oder nur unter Zuhilfenahme anderer Quellen nachvollziehbar. In diesem Zusammenhang sind dann auch einige Sprünge in der Reihenfolge etwas irritierend: bspw. wird auf Seite 129 in einem Beispiel-Block aus heiterem Himmel der Before-Filter ins Spiel gebracht und erst auf Seite 136 folgt das Kapitel über Filter, in denen diese eingeführt und erklärt werden. Durch solche kleinen “Fehler in der Matrix” und die eine oder andere recht kurzgefasste Erläuterung blitzt an manchen Stellen kurz der Verdacht auf, die Autoren hätten unter dem Zeitdruck des Veröffentlichungstermins (der sicherlich nicht zu knapp vorhanden war, wie aus dem Umfeld zu hören war ;)) manchmal etwas “toleranter” getextet. Dieser Eindruck bildet sich aber zum Glück nur selten und beeinflusst den Gesamteindruck beim Lesen auch nicht nachhaltig.

Pluspunkte

Als Gegenpol zu diesen wenigen Kritikpunkten gibt es eine Menge positiver Aspekte hervorzuheben. Zunächst wäre da der ungeheure Themenreichtum, der beim Leser nach Abschluss der Lektüre den Eindruck hinterlässt, man habe ein mindestens doppelt so dickes Buch durchgearbeitet. Natürlich nicht neu aber immer wieder bewährt hat sich der Ansatz, ein durchgängiges Beispielprojekt schrittweise zu entwickeln, welches den Leser durch die einzelnen Kapitel und Abschnitte begleitet und so auf anschauliche Weise einen Praxisbezug herstellt sowie beim Nachbauen das Gelesene festigt und in Gelerntes umwandelt. Das hier verwendete Beispielprojekt der Bibliotheksverwaltung ist konkret genug, um als Basis für eigene (Weiter)entwicklungen zu dienen und bietet genügend Anknüpfungspunkte um die verschiedenste Aspekte der Rails-Programmierung zu integrieren, ohne dass die Beispiele konstruiert wirken würden. Dieser Umstand ermuntert zusätzlich, die Beispiele einmal selber auszuprobieren. Die kurze Einführung in die “Denkweise” bei der Railsentwicklung (Stichwort Agilität) liefert ebenfalls konkrete Ansätze zum Ausprobieren: wer vorher immer “völlig planlos” oder aber im anderen Extremfall mit dem kompletten Werkzeugkasten der strukturierten Vorgehensweisen (SA/SD) seine Projekte entwickelt hat, wird u.U. den Einsatz von Storycards und Anwendungsgeschichte schätzen lernen und vielleicht auch seine Kunden von deren Nutzen überzeugen können.

Fazit

Wie bereits mehrfach erwähnt deckt dieses Buch ein sehr breites Spektrum an Themen ab, die einem bei der Nutzung von Ruby on Rails begegnen können. Aufgrund seines begrenzten Seitenumfanges kann es dabei natürlich kein Kompendium sein und gerade komplexere Zusammenhänge dabei teilweise nur anreißen. Auf der anderen Seite können durch die hohe Bandbreite des Inhalts aber auch bereits viele Fragen geklärt werden und es wird ein guter Eindruck vermittelt, was mit Rails alles mit vergleichsweise wenig Aufwand und komfortabel realisiert werden kann. So gesehen ist dieses Buch ein toller Ideengeber und Ausgangspunkt, um sich mit spezifischen Fragestellungen auf der hier vermittelten Basis näher zu beschäftigen. Wer schon das eine oder andere Einsteigerbuch gelesen hat, sollte sich “Webanwendungen mit Ruby on Rails” ruhig einmal einschauen: man hat die Möglichkeit, schnell und praxisnah den eigenen Rails-Horizont je nach Vorwissen merklich zu erweitern.

iOS app for GitHub

iOctocat

ist GitHub für die Hosentasche - deine Projekte und das was dort passiert immer dabei mit deinem iPhone und iPod Touch.
Die App ist