Ruby on Rails

Bei Ruby on Rails, kurz RoR, handelt es sich um ein plattformunabhängiges Framework, das auf der Programmiersprache Ruby basiert. Mit RoR können dynamische Webseiten, die auf Datenbanken zugreifen, meist schneller als mit anderen Sprachen programmiert werden, da Datenbankzugriff und Requests gekapselt werden.

Geschichte

Ruby on Rails wurde von dem japanischen Programmierer Yukihiro Matsumoto als „Humansprache“ entwickelt. Der Vorteil dieser Grundausrichtung ist, dass die Programmzeilen nahezu wie normaler Text gelesen werden können. Ruby on Rails ist eine Open-Source-Anwendung, die auf Ruby basiert. Veröffentlicht wurde Ruby on Rails erstmalig im Jahr 2004 von dem dänischen IT-Experten David Heinemeier Hansson. Er extrahierte das Framework aus dem Projektmanagement-Tool Basecamp. Somit musste er viele Aufgaben von Ruby on Rails nicht neu schreiben, sondern er konnte die Basics direkt aus dem Tool übernehmen. Auf diese Weise ist Ruby on Rails von Grund auf sehr praxisnah gehalten. Zwei Basiskonzepte sollen die Philosophie des Frameworks wiedergeben:

  • Don’t repeat yourself: Informationen müssen mit Ruby on Rails nur einmalig in der Datenbank hinterlegt werden. Eine erneute Kopie im Quellcode ist demnach nicht nötig. Das DRY-Prinzip stellt somit die Programmierkonventionen über die Konfiguration der Anwendung. Auf diese Weise können agil programmierte Webapplikationen schnell realisiert werden.
  • Convention over Configuration: im Framework RoR wird von sinnvollen Standardwerten ausgegangen, die eine permanente Anpassung der Konfiguration verhindern sollen und somit Zeit beim Entwickeln sparen.
  • Projekte: Wenn Projekte mit Ruby on Rails erstellt werden, entstehen nicht nur Konfigurationsdateien, sondern auch eine Struktur für die Projektverzeichnisse. Auf diese Weise haben alle Rails-Projekte eine identische Struktur, wodurch die Wartung von RoR-Applikationen deutlich vereinfacht wird. Zugleich wird so ermöglicht, dass Programmierer sich problemlos in anderen Projekten zurechtfinden und flexibel an verschiedenen RoR-Programmierungen arbeiten können.

Besonderheiten von Ruby on Rails sind z.B. das Scaffolding. Hiermit können Änderungen an einer Webseite dadurch erzielt werden, dass einfach ein neues Feld in der Datenbank hinzugefügt wird.

Bestandteile

Als geschlossenes System baut die Ruby-on-Rails-Laufzeitumgebung auf verschiedenen Skripten, Bibliotheken sowie dem Ruby-Interpreter auf. Jede Anwendung, die mit RoR programmiert wird, setzt sich aus einem Verzeichnisbaum zusammen, der u.a. aus Views, Konfiguration, Datenbankmodell und Controller besteht. Das Besondere daran ist, dass die Bereiche Datenbestand, Datenaufbereitung und Datenanzeige voneinander getrennt bleiben. Somit lassen sich Ruby-on-Rails-Anwendungen leicht pflegen.

Die Architektur einer solchen Anwendung besteht aus:

  • Controller: das ist eine Ruby-Datei, die bei einem Request über eine URL ausgeführt wird. Wird in einem Online-Shop z.B. eine Funktionsseite wie der Warenkorb aufgerufen, löst ein in der URL enthaltener Parameter eine Datenbankabfrage aus. Diese Daten werden dann über die View verarbeitet und eine HTML-Seite wird mit Inhalten gefüllt.
  • Model: hierbei handelt es sich um ein Datenbankschema, das Daten miteinander in Beziehung setzt. Hierfür sind Klassen, Eigenschaften und Methoden als Unterscheidungskriterien vorgesehen. Jede Klasse entspricht meist eine Datenbanktabelle. Jeder Zeile in dieser Tabelle wird wiederum ein Objekt zugeordnet und diesem wiederum Eigenschaften in Form von Feldern.
  • View: damit werden Daten visualisiert. Die sogenannte „Action View“-Klasse kann in HTML, XML oder auch JavaScript auf einer ganzen Website oder in Teilen wiedergegeben werden.

RoR vs. Java vs. PHP

TabelleROR.png

Nutzen

Ruby on Rails ist sehr gut geeignet, um Anwendungen im Web 2.0 zu realisieren. Hierzu gehören z.B. Anbindungen an Blogs oder Soziale Netzwerke sowie Bewertungsfunktionen. Für SEO-Zwecke hat Ruby on Rails den Vorteil, dass es SEF-URLs per default generiert. Darüber hinaus können sehr einfach Konfigurationen vorgenommen oder durch zahlreiche Plugins ausgeführt werden. Ein sehr beliebtes Plugin für RoR ist z.B. Gretel, das eine Breadcrumb-Navigation schafft.

Weblinks