Freitag, 9. Januar 2009

entwickler.com Magazine Konferenzen Entwickler Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag





09.06.2008
Ruby on Rails 2.1

Ruby on Rails ist ein MVC basiertes Fullstack-Framework für die Entwicklung von datenbankzentrierten Webanwendungen. Anders als viele andere Frameworks, wurde Ruby on Rails als Extrakt aus einer "Real-World-Application" gewonnen und 2005 vom Macher, David Heinemeier Hansson, in Version 1.0 als Open-Source-Projekt freigegeben. Seitdem ist Ruby on Rails wie ein Blitz in die Web-Community eingeschlagen. Das auf der objektorientierten dynamischen Sprache Ruby basierende Framework machte fortan mit extremen Produktivitätssteigerungen bei der Entwicklung von Web-2.0-Anwendungen von sich reden. Der Einstieg in Ruby on Rails ist einfach und bereits nach wenigen Tagen ist ein Entwickler in der Lage, ansprechende und vor allem mit vielen Features ausgestattete Webprojekte zu realisieren.

Ruby on Rails implementiert zahlreiche Patterns und sorgt mit einer festen Projektstruktur für viel Ordnung und schnelle Orientierung, auch wenn man sich einmal mit den Sourcen eines anderen Projektes beschäftigen muss. Das Motto unter dem Ruby on Rails entwickelt wird, lautet "Convention over Configuration". Damit werden beispielsweise Redundanzen vermieden, mit denen sich die Java-Community jeden Tag herumschlagen muss. Java-Entwickler kennen das. Man startet in den Entwicklertag mit dem Starten einer IDE, die viele Dateien für eine einzige Enterprise JavaBean verwaltet. Eine Modellklasse wird mit Hibernate persistent gemacht, jedoch nicht ohne einen XML-Deskriptor zu erstellen. Die Datebanktabelle für ein Modell muss in SQL formuliert werden und die Attribute der Modellklasse werden manuell programmiert, indem Getter und Setter implementiert werden müssen. Der typische Ruby-on-Rails-Entwickler kann über soviel Overhead nur lachen. Der OR-Mapper ActiveRecord implementiert das gleichnamige Pattern und kapselt SQL vom Entwickler weg. Die Attribute ergeben sich aus der Konvention, dass jede Spalte der Datenbanktabelle gleichzeitig ein Attribut ist. Getter und Setter werden dabei implizit zur Verfügung gestellt.

ActionView und ActionController sind weitere Bestandteile von Ruby on Rails, die sich der Entwicklung von Views und Controllern widmen. Damit lassen sich schlanke RESTful Controller entwickeln, die als Mittler zwischen der Modell- und der View-Schicht fungieren. Die Sprache Ruby bietet dabei eine Menge lesbarer Konstrukte, die eben nur mit einer dynamischen Sprache zu realiseren sind. Hier ist das Stichwort Metaprogrammierung, was soviel bedeutet wie, dass Code in der Lage ist, selbst Code zu erzeugen. Somit hat Hansson diese Features ausgenutzt und eine eigene domänenspezifische Sprache für Webanwendungen entwickelt und in Ruby on Rails verankert. XML-basierte Konfiguration gibt es in Rails nicht, vielmehr wird mit YAML auf ein von Menschen lesbares Format gesetzt. Freunde der testgetriebenen Entwicklung finden mit Ruby on Rails ein Framework vor, das bereits alle notwendigen Elemente für Unit- und Funktionstests mitbringt.

Obwohl es bereits eine Menge Entwicklungsumgebungen für Ruby on Rails gibt (3rdRails, NetBeans, Aptana), setzt der Großteil der Entwickler auf einen starken Texteditor (TextMate, e-texteditor) und eine Dateiverwaltung. Die Syntax von Ruby und das leistungsstarke Framework sorgen für lesbaren Code und vor allem viel weniger Lines of Code.

Die Betreiber der Website yellowpages.com haben mit Ruby on Rails beispielsweise die kompletten Features ihrer "alten" Site neu implementiert und ersetzten somit innerhalb von drei Monaten 125.000 Zeilen Java durch knapp 14.000 Zeilen Ruby on Rails Code.

Rails 2

Rails 2.0 kam kurz vor Weihnachten 2007 auf den Markt und steigerte die Produktivität noch einmal deutlich. Viele Patches sorgten für eine noch konsequentere Einhaltung von DRY (Don’t Repeat Yourself). Spezifische Layouts für jeden Controller sowie die verbesserte Nutzung von Partials erlauben die drastische Reduzierung von redundantem Code. Das verbesserte Routing von Browserrequests erlaubt die Nutzung von REST (Representational State Transfer) in Controllern einer Application. ActiveResource bietet die transparente Nutzung von RESTful Web Services, in dem die Basis des Persistenzlayers ein Web Service anstelle einer Datenbank sein kann.

Update 2.1

Am 1. Juni dann war es soweit. Auf der RailsConf 08 wurde Ruby on Rails 2.1 freigegeben. Viele dramatische Neuerungen gibt es nicht, was sich letztlich auch in der Versionsnummer widerspiegelt. Interessanter ist allerdings die Anzahl an Patches, die in den letzten sechs Monaten in das Release eingeflossen sind. Über 1600 Patches verbessern Ruby on Rails in vielen Bereichen. Jonathan Weiss und Steven Bristol haben auf der diesjährigen DLW-Konferenz einen Patch geschrieben, der in Sqlite3 eine Sicherheitslücke schließt. Die Community ist hier massiv aktiv und über alle Maßen hilfsbereit.

Einige neue Features (wir berichteten) sind allerdings auch freigegeben worden:

Michael Johann

Michael Johann (mjohann@rails-experts.com) ist freier IT-Architekt sowie Gründer und ehemaliger Vorstandsvorsitzender der CARNOT AG und ist seit den Anfängen von Java als Chefredakteur des JavaSpektrum bekannt geworden. Als überzeugter Switcher ist er seit 2006 dem Thema Ruby on Rails verschrieben und veröffentlicht im Sommer 2008 sein erstes Buch zum Thema Rails.

  • Unterstützung für Zeitzonen, die bisher nur über externe Plugins zu bekommen war.
  • Dirty-Objects-Funktionen zur Handhabung von Änderungen an Modellinstanzen.
  • Support für Gem-Dependencies.
  • Zusätzliches Controller-Caching.
  • Verwendung von UTC-Timestamps bei der Namensvergabe für Migrationen, um konflikte in Entwicklerteams zu entschärfen.
  • Has_Finder-Plugins wurde integriert, um wiederkehrende SQL-Abfragen zu vereinfachen.

Ruby on Rails findet immer mehr Anhänger und kann mit der bisherigen Arbeit überzeugen. Die ständig wachsende Community trägt die Anforderungen konsequent zusammen und setzt diese auch überzeugend um. In vielen Gesprächen auf Konferenzen wird immer wieder klar, was die Leute dazu antreibt: Freude und Motivation. Diese Aspekte kommen erst durch die enorme Produktivität und die Einfachheit des Frameworks auf. Durch den hohen Praxisbezug des Frameworks können Entwickler lange liegen gelassene Aufgaben endlich in Angriff nehmen.

Projekt-Homepage von Ruby on Rails
Guter Podcast zum Lernen von Ruby on Rails
Gute Screencasts zum Lernen von Ruby on Rails







Software & Support Verlag GmbH