Ruby on Rails ist einfach am besten

Ruby on Rails erscheint bald in der Major-Version 6. In den Anfangsjahren wurde Rails bekannt, weil man ohne viel Konfigurationsaufwand mit der Entwicklung beginnen konnte und fast keine Zeit in das Bootstrapping investieren brauchte. Und auch nach fast 15 Jahren gibt es zu dem Webframework keine wirkliche Konkurrenz, mit der man ├Ąhnlich effektiv neue Features umsetzen k├Ânnte. Doch woran liegt das?

Viel Aufmerksamkeit erhielt Ruby on Rails zu Beginn f├╝r das Video ÔÇ×How to build a blog engine in 15 minutes with Ruby on RailsÔÇť. Nach mittlerweile 13 Jahren gilt das immer noch als beeindruckend, wie schnell ein rudiment├Ąrer Blog implementiert werden kann.

Wenn man die Entwicklung von Rails im Vergleich zu anderen Webframeworks verfolgt, stellt man fest, dass auch in Ruby on Rails zahlreiche neue Features hinzugekommen sind, aber die radikale Einfachheit, mit der man in der Entwicklung konfrontiert ist, geblieben ist. Hier haben sich andere Webframeworks, egal auf welcher Programmiersprache sie aufbauen, oft in die falsche Richtung entwickelt und auf Kosten neuer Features die Komplexit├Ąt durch viel Konfigurationsaufwand erh├Âht. Dadurch geht die Einfachheit verloren, durch die man schnell in die Entwicklung starten kann.

Doch nicht nur beim initialen Bootstrapping einer neuen Anwendung, die zu Beginn vielleicht nur Prototypen-Charakter hat, ist meiner Meinung nach Rails weiterhin ungeschlagen schnell. Auch in der weiteren Feature-Entwicklung von produktiv betriebenen Applikationen bietet Rails durch das konsequente Verfolgen des Paradigmas Convention over Configuration, die Flexibilit├Ąt neue Funktionen effektiv zu entwickeln.

Schnelle Feature-Entwicklung hei├čt nicht, dass das Resultat nur Prototypen-Charakter hat - das beweist Ruby on Rails immer wieder. Werfen wir beispielsweise einen Blick auf den Reisekosten-Gorilla, das Tool um einfach Reisekostenabrechnungen durchf├╝hren zu k├Ânnen. F├╝r uns vier Gr├╝nder war von Anfang an klar, dass als Grundlage nur Ruby on Rails in Frage kam. Jeder von uns hat in unseren Jahren als Consultant viele verschiedene Frameworks genutzt, aber an die Effizienz von Rails kam zum damaligen Zeitpunkt kein anderes Framework heran.

Und auch heute, mehrere Jahre nach dem Start des Projekts, sind wir immer noch der ├ťberzeugung, dass Ruby on Rails das ├╝berlegene Framework f├╝r eine solche Webanwendung ist.

Vor kurzem haben wir beispielsweise ein neues Feature eingebaut, das es erm├Âglicht Bewirtungsbelege aus get├Ątigten Ausgaben heraus zu erfassen. Insgesamt dauerte es nicht mehr als zwei Tage, das Feature zu entwickeln, zu testen, zu reviewen und ins Produktivsystem zu deployen. Und dass es ganze zwei Tage dauerte, lag nicht an Ruby on Rails, sondern haupts├Ąchlich an der Integration der Unterschriftsfunktionalit├Ąt, die deutlich komplexer war, als zun├Ąchst angenommen. W├╝rde man diesen Teil ausklammern, w├Ąre die Entwicklung noch deutlich schneller vonstatten gegangen.

Das Anlegen der ben├Âtigten neuen Felder in der Datenbank ist mit einer einfachen Migration schnell erledigt. Anschlie├čend k├Ânnen die Felder entsprechend dem Styling der Anwendung im Formular eingebaut und gef├╝llt werden. Das Anzeigen der Felder in den Details einer Ausgabe ist auch allt├Ągliche Arbeit f├╝r einen Entwickler und entsprechend flink erledigt.

Das Komplizierte des Features war f├╝r uns, neben der schon erw├Ąhnten Integration der Unterschriftsfunktionalit├Ąt ins Formular, noch die Generierung des Bewirtungsbelegs als eigenst├Ąndiges PDF-Dokument. Doch f├╝r das gesamte Ruby-├ľkosystem gibt es gl├╝cklicherweise unz├Ąhlige gut gepflegte Libraries, f├╝r gro├če und kleine Probleme die irgendwer schon einmal gel├Âst hat. Das ist meiner Meinung nach einer der gro├čen Vorteile im Ruby Umfeld. Zwar gibt es auch f├╝r andere Webframeworks oder Sprachen entsprechende Libraries, doch die Masse und insbesondere Qualit├Ąt und Einfachheit der Ruby-Libraries ist meiner Meinung nach un├╝bertroffen.

Da der Reisekosten-Gorilla schon an anderer Stelle PDF-Dateien generiert, hatten wir uns mit der Generierung von PDF-Dokumenten schon einmal auseinandergesetzt und eine entsprechende Library eingebunden. Wir benutzen daf├╝r das Ruby Gem prawn. So hatten wir auch schon ein fertiges PDF-Styling, dass wir nutzen konnten, um ein eigenes Dokument f├╝r den Bewirtungsbeleg zu erstellen

Hier fiel f├╝r uns dann allerdings ein wenig Refactoring-Arbeit an, um die PDF-Generierung generischer als bisher zu gestalten. Anschlie├čend mussten wir nur noch die gew├╝nschten Daten ├╝bergeben, in einer Tabelle darstellen und die als SVG gespeicherte Unterschrift auf das PDF drucken. Dann noch die vorhandenen Quittungen an das Bewirtungsbeleg-PDF anh├Ąngen und fertig war die Generierung eines selbstausgef├╝llten Bewirtungsbelegs als eigenes Dokument.

Das Einzige was noch fehlte, war die Verlinkung der PDF-Datei aus der Ausgabe heraus und die Erstellung des PDF in einer neuen Methode im Controller. Aber auch das ist mit Rails in wenigen Zeilen Code erledigt.

Somit konnten wir ein komplett neues Feature in weniger als zweit Tagen umsetzen, das der bestehenden Anwendung einen erheblichen Mehrwert bietet. Das Feedback der Nutzer dazu war eindeutig.

Mit Ruby on Rails l├Ąsst sich also schnell qualitativ guter Code schreiben und das mit Ergebnissen, die auch vom UI und UX so hochwertig sind, dass sie die Nutzer und Entwickler gleicherma├čen ├╝berzeugen. Mehr geht nicht.

Das liegt zum Teil auch daran, dass insbesondere die Templating-Engine bei der Frontend-Entwicklung nicht so stark im Weg steht wie beispielsweise Thymeleaf im Java-Umfeld. Und auch was die Aspekte Security oder Skalierung angeht, ist Rails seit Bestehen Trendsetter. Andere Frameworks ziehen in den meisten Gebieten nur nach - und das oft erst nach Jahren. Ein sch├Ânes Beispiel sind auch die Stateless Cookie-based Sessions. Das ist auch heute noch in der Framework-Landschaft nicht allt├Ąglich.

Meiner Meinung nach ist Rails also immer noch das Framework der Wahl und das Nonplusultra, wenn man effektiv Webanwendungen entwickeln will.

TAGS

Kommentare

Um die Kommentare zu sehen, bitte unserer Cookie Vereinbarung zustimmen. Mehr lesen