10 years of Ruby on Rails: outgrowing its infancy
Technologien sowie die Entwicklergemeinschaften, die sich um Technologien herum formen, etablieren häufig eine eigene Kultur mit spezifischen Werten. Die Philosophie und der Pragmatismus, welche der Entwicklung von und mit Ruby on Rails zugrunde liegen, waren zum Zeitpunkt von Rails Veröffentlichung bahnbrechend und prägend für die moderne Web Entwicklung. Heute profitieren bekannte Unternehmen aus diversen Branchen, etwa IBM, Cisco, Twitter oder Amazon, von agilen Entwicklungsprozessen auf Basis von Ruby on Rails. Rails Entwickler schätzen die Möglichkeit einer schnellen und reibungslosen Entwickelung von Funktionalitäten.
Das Framework Ruby on Rails ist in der Programmiersprache Ruby implementiert. Ruby erlaubt es Entwicklern auf Basis eines objektorientierten Fundaments prägnante und dynamisch anpassbare Programme zu schreiben. Die Ruby Entwicklergemeinschaft betont das Schreiben von schlankem, leicht verständlichem und getestetem Code. Diese Eigenschaften ermöglichen Entwicklungsprozesse, innerhalb derer mit hoher Geschwindigkeit nachhaltige und vor allem einfach wartbare Anwendungen erstellt werden können.
Rails macht es möglich Software-Lösungen in kurzen Entwicklungs- und Feedbackzyklen zu entwickeln und eignet sich in besonderem Maße für die agile Entwicklung. Begünstigt wird dies im Wesentlichen von zwei grundlegenden Philosophien, die bei Rails Anwendungen im Fokus stehen:
Convention over Configuration
Rails gilt unter Entwicklern als meinungsstarkes Framework. Ein Grund dafür ist das Prinzip „Convention over Configuration”. Die Implementierung von Funktionalität, welche sich an die von Rails vorgegebenen Konventionen hält, benötigt keinerlei zusätzliche aufwendige Konfiguration. Gleichzeitig sind die Konventionen nicht als starrer Rahmen zu verstehen, sondern fungieren als strukturgebendes Element, das auch Flexibilität über die Konventionen hinweg einräumt. Funktionalitäten, die sich außerhalb der vorgegebenen Konventionen bewegen, lassen sich mit geringem Konfigurationsaufwand einpassen.
Don't Repeat Yourself
Das Don’t Repeat Yourself (DRY) - Paradigma sieht vor redundant implementierte Funktionalität und mehrfach vorhandenes Anwendungswissen zu isolieren und zu vereinigen. Dies hat eine kleinere, wiederverwendbare und leichter verständliche Code-Basis zur Folge. Auch Weiterentwicklung und Wartung können dank dieses Paradigmas effizienter durchgeführt werden. Zur Wahrung des Prinzips DRY gibt Rails einen Anwendungsrahmen vor, welcher auf dem Model View Controller Architekturmuster basiert. Diese Schichtenarchitektur, geprägt durch Rails Konventionen, gibt jedem Aspekt einer Anwendung einen kanonischen Platz. Entwickler laufen folglich nicht Gefahr, Funktionalität innerhalb der Anwendung zu verdoppeln.
Innerhalb der letzten zehn Jahre ist Ruby on Rails von einer innovativen, neuen Technologie zu einem soliden und professionalisierten Bestandteil der Webentwicklung gereift. Rails globale Entwicklergemeinschaft pflegt eine breite Menge an Bibliotheken, die spezifische Funktionalitäten z.B. Authentifizierung und Authorisierung oder das Zusammenspiel mit Drittanbieterschnittstellen stark vereinfachen. Die Vielzahl domänenspezifischer Bibliotheken fördert Anwendungszwecke im Startup- und Enterprise-Umfeld. Entgegen kommt dem Framework im Bereich Schnittstellen und verteilte Systeme vor allem die Orientierung am Programmierparadigma REST. Rails ist hierdurch besonders gut geeignet, um komplexe, heterogene Systemlandschaften leichtgewichtig miteinander zu verbinden und integrierte Prozesse zu ermöglichen.
Wir haben die Erfahrung gemacht, dass das Entwickeln mit Rails zu geringem Entwicklungs- und Konfigurationsaufwand sowie einer wartbaren Codebasis führen. Dies unterstützt iterative Entwicklungsprozesse und lässt Entwickler bessere Web-Anwendungen in kürzerer Zeit mit weniger Fehlern entwickeln.
Klingt soweit gut, oder? Was sind eure Erfahrungen mit Rails?