Ein paar einführende Worte zu Ruby und Rails
Ruby on Rails ist eine Kombination aus Sprachen (Ruby) und Frameworks (Rails), die in den letzten Jahren eine sehr hohe Aufmerksamkeit bekommen hat.
Ruby vereint bewährte Konzepte unterschiedlicher Sprachen in einer Skriptsprache: vollständige, reine Objektorientierung von Smalltalk, prototyp-basierte Objektorientierung a là JavaScript, Mixins aus Python. Über DuckTyping wird eine dynamische Typisierung bereitgestellt und da jedes Programm in einem globalen Main-Objekt läuft, fallen explizite Klassendefinition wie aus Java, C++, C#, etc. bekannt, weg und vereinfachen die Syntax; so kann Ruby auch vollständig prozedural programmiert werden und da jeder Ausdruck zu einem Wert ausgewertet wird, ist auch funktionale Programmierung möglich.
Schnell folgte ein Framework für Webapplikationen. In Ruby-Manier (Principle of Least Surprise + Keep It Short and Simple) versucht Ruby on Rails trotz komplizierter Technologien wie Model View Controller, Representational State Transfer oder Object-relational Mapping, den Programmieraufwand so gering wie möglich zu halten. Das scheint anzukommen, typische Rails-Projekte umfassen Basecamp, Twitter, Scribd, Pitchfork, Shopify oder GitHub.
Die Zauberformel nennt sich „Convention over Configuration“ und das Werkzeug, mit dem man auch ohne Ruby-Kenntnisse Webapplikationen erstellen kann, heißt „Scaffolding“: Eine Vorstellung der Modellbeziehungen reicht um mit den Scaffolding-Befehlen Datenbanken, Model-, View und Controller-Klassen, Routes, etc. automatisiert zu erzeugen.
Meine bisherigen Bucherfahrungen
Leider, das ist meine Erfahrung, wird dieses Prototyping-Werkzeug von vielen Buchautoren missverstanden. So gibt es viele Bücher und Tutorials, die einem mit Scaffolding aufzeigen wie leicht sich ein Blog, ein Twitter-Clone oder eine Filme-Datenbank bauen lässt; wenn dann der Leser ein eigenes Projekt realisiert und auf Probleme stößt, steht er oft verloren da. Denn warum Scaffolding wo welche Dateien wie anlegt, wird einem in der Regel nicht erklärt. Falls doch (Michael Hartls „Learn Web Development with Rails“ ist eine solche Ausnahme), wächst das Buch schnell an Umfang, sodass für fortgeschrittene Themen kaum Raum bleibt.
In diese Lücke tritt das von O’Reilly vertriebene Buch „Crafting Rails Applications“ aus der Reihe „The Facets of Ruby“, welches sich in der vorliegenden zweiten Auflage vom Verlag Pragmatic Bookshelf explizit auf Rails 4 bezieht. Der Autor José Valim verspricht auf den 180 Seiten dem Leser ein Verständnis von „Rails‘ inner workings“ zu verschaffen, welches helfen soll zukünftig robustere Projekte zu erstellen.
Acht Kapitel mit jeweils etwa 20 Seiten gibt es zu lesen, jedes Kapitel ist ein in sich geschlossenes Hands-on-Tutorial, welches ein eigenes Thema umfasst, und die Theorie an einem Beispiel demonstriert. Dennoch lohnt sich das „chronologische“ Lesen, denn auf die Theorie der ersten Kapitel wird in den folgenden Kapiteln zurückgegriffen.