Anzeige
Anzeige
UX & Design

Ein Ausblick auf die kommende Version des schlanken Web-Frameworks: Ruby on Rails 2.0

Die Keynote des Ruby-on-Rails-Erfinders David Heinemeier Hansson auf der RailsConf 2007 drückte vor allem eines aus: Die Zufriedenheit mit einem stabilen, runden Framework. So passt es auch gut ins Bild, dass das nächste große Release des Web-Development-Frameworks keine bahnbrechenden Innovationen mit sich bringen wird. Es sind vor allem Detailverbesserungen, die die neue Version ausmachen sollen.

3 Min.
Artikel merken
Anzeige
Anzeige

Das Rails-Team ist zufrieden mit sich und seinem Framework, das bereits über eine Million Downloads und hunderte Plugins zählt. Entsprechend stand die Keynote von Heinemeier Hansson [1] unter dem Motto „Celebrating what we have“. Die gleiche Stimmung spiegelt auch das kommende Release 2.0 von Ruby on Rails wieder: Anstatt auf künstliche Innovationen, setzt die neue Version auf viele kleine Detailverbesserungen.

REST statt SOAP

Anzeige
Anzeige

Web Services werden in der Zukunft standardmäßig über die RESTful implementierten „Active Resources“ realisiert. Folglich wird das REST-Konzept auch in Rails immer zentraler. Wer aber weiterhin auf „SOAP“ setzen möchte, kann dies auch weiterhin tun.

Breakpoints

In Version 1 wurde der „Breakpointer“ häufig zum Debugging verwendet. So lange, bis ein Ruby-Bugfix den „Breakpointer“ unbrauchbar machte. In Version 2 können wieder Breakpoints gesetzt werden, allerdings mit dem Keyword „debugger“ (früher: „breakpoint“). Neu ist neben dem Namen auch eine erweiterte Funktionalität: Wie bisher landet man beim Erreichen des Breakpoints in einer IRb-Session, kann dort aber jetzt auch den Stack durchwandern.

Anzeige
Anzeige

HTTP Performance

Werden viele einzelne JavaScript- und CSS-Dateien auf einer Seite eingebunden, erhöht sich die Wartezeit für den Besucher, bis die Seite angezeigt werden kann. Der Grund dafür: Browser können nur wenige (normalerweise zwei) simultane Requests vom gleichen Host zulassen. Rails 2.0 löst das Problem, indem es die Dateien zusammenführt und komprimiert. Folgende zwei Zeilen machen aus den projektabhängig oftmals unzähligen CSS- und JavaScript-Dateien jeweils eine einzelne Datei:

Anzeige
Anzeige
Rails
<%= javascript_include_tag :all, :cache => true %>
<%= stylesheet_link_tag :all, :cache => true %>

Listing 1

Um die HTTP-Performance zu verbessern, lassen sich in Rails 2.0 auch spezielle Asset-Server konfigurieren, um beispielsweise mehr simultane Downloads zuzulassen:

Rails
config.action_controller.asset_host = “assets%d.example.com“

Listing 2

Query Cache

Ein neu eingeführter Cache auf der Applikations-Ebene sorgt dafür, dass keine unnötigen Datenbank-Abfragen entstehen, die Zeit und Performance kosten. Dadurch können einmal abgefragte Daten direkt verwendet werden – ohne den Umweg über die Datenbank. Sehr angenehm am Query Cache ist, dass er von selbst geleert wird, wenn eine betreffende Änderung an den Daten (insert/delete/update) vorgenommen wird.

Anzeige
Anzeige

Namenskonventionen

Eine Zweiteilung der Dateinamen-Erweiterung für Template-Dateien soll in Rails 2.0 eine verbesserte Auskunft darüber geben, welche Engine welches Format ausgibt. Der erste Teil nennt das Ausgabeformat, der zweite Teil die zuständige Engine:

  • index.html.erb
  • index.xml.builder
  • index.rss.erb
  • index.atom.builder

Flexiblere Umgebungskonfiguration

Die Dateien zur Umgebungskonfiguration können bei größeren Projekten schnell komplex und unübersichtlich werden. Rails 2.0 erlaubt es, die Konfigurationen besser auf einzelne Dateien aufzuteilen. Das vereinfacht auch die Wiederverwendung.

Neue Migrationen

Gerade Tabellen mit vielen Feldern waren in den Migrationen oft mit viel dupliziertem Code verbunden. Felder gleichen Typs mussten, obwohl sie absolut gleich konfiguriert waren, ebenso umfangreich wie ihre Vorgänger definiert werden. In den neuen Migrationen in Rails 2.0 tauschen nun Feld-Typ und Feld-Name die Plätze. Hier ein Vergleich zwischen alt und neu:

Anzeige
Anzeige

HTTP-Authentifizierung

Auf den ersten Blick mag es verwundern, dass Rails 2.0 die gute alte HTTP-Authentifizierung stärker einbindet – für die meisten Anwendungsfälle ist der Klassiker schließlich nicht gerade „State of the art“. Doch für Datendienste, zum Beispiel für Feedreader, ist diese Authentifizierung durchaus sinnvoll. Rails 2.0 kann Clients, die XML-Daten anfordern, den Zugriff sehr leicht über die HTTP-Authentifizierung erlauben, während andere Formate nach gewohnter applikationsspezifischer Authentifizierung ausgegeben werden.

Um Lizenzfragen bei Plugins zu vereinfachen, erstellt der Generator für ein neues Plugin gleich eine Datei mit der MIT-Lizenz. Soll für das selbst erstellte Plugin eine andere Lizenz gelten, kann die MIT-Lizenz an die eigenen Bedürfnisse angepasst werden.

Wie in jeder Version werden einige Features als „deprecated“ (wörtlich „missbilligt“) gebrandmarkt und einige uralte Features endlich komplett entfernt. Über diese Routine-Tätigkeiten hinaus werden auch einige Features (z. B. die InPlaceEditing-Makros) aus der Kern-Applikation ausgelagert und in eigene Plugins verpackt.

Anzeige
Anzeige

Fazit

Rails wird auch in der Version 2.0 keine „eierlegende Wollmilchsau“ sein. Statt den Anspruch zu erheben, ein universaler Problemlöser zu sein, bleibt Rails mit Version 2.0
seiner Linie treu: schlank und fokussiert – auch das brachte Rails-Kopf Heinemeier Hansson während der RailsConf deutlich zum Ausdruck.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige