Ruby on Rails 3: Een voorbeschouwing

16 August 2010 12:05 Iain Hecker Ruby

Het is bijna zo ver: Ruby on Rails 3 komt er aan! Naar deze versie wordt enorm uitgekeken. En terecht. De nieuwe versie belooft een groot aantal nieuwe features en is onder de motorkap enorm verbeterd.

Hier bij Finalist houden we de ontwikkelingen van Rails op de voet bij. We gebruiken de beta versie van Rails 3 al een aantal maanden en met veel plezier. Hier is een voorbeschouwing van de belangrijkste verbeteringen.

Leesbare broncode

De broncode van Rails is grotendeels herschreven. Alle features hebben een logische plek gekregen binnen de structuur van Rails. De complexiteit van de broncode is daardoor omlaag gegaan. Het is nu makkelijker dan ooit om de code te vinden die je zoekt, deze te lezen en te begrijpen hoe het in elkaar zit. Goed nieuws voor de ontwikkelaars die de grens opzoeken van wat er mogelijk is in Rails.

Dependencies en plugins

Rails 3 komt met de nieuwe dependency manager Bundler, waar ik vorige keer al over schreef. Daarbij is er in Rails 3 ook een plugin API waardoor het extra makkelijk is voor plugins om in te haken op specifieke onderdelen van de applicatie.

Dit werkt allemaal met een notificatie-systeem waarop geabonneerd kan worden. Voor de meeste plugins betekent dat het doodeenvoudig wordt om op het juiste moment code te laden. Sommige zaken moeten bijvoorbeeld uitgevoerd worden nadat de ORM geladen is. Een uitkomst voor iedereen die plugins schrijft.

Dit betekent dat veel van de bestaande plugins aangepast moeten worden om te werken met Rails 3. De meeste plugins zijn op dit moment al aangepast. Mocht je een plugin gebruiken die niet werkt dan kun je met bundler vaak verwijzen naar een git branch die al wel werkt.

Modulariteit

De standaard onderdelen van Rails 3 gebruiken de nieuwe plugin API ook. Zo is ActiveRecord, de standaard ORM van Rails, slechts een van de vele plugins die Rails maken tot wat het is.

De kracht van Rails is een goed geïntegreerde standaard stack. Je kan met Rails direct beginnen, zonder ook maar een keuze te maken. Pas zodra je speciale wensen hebt kan je heel makkelijk onderdelen verwisselen. Dit heet “convention over configuration”.

De kern van Rails 3 heet ‘railties‘ (beter gezegd: “rail ties”, dus het heeft te maken met onderdelen aan elkaar knopen). Hiermee worden alle onderdelen van de applicatie op eenvoudige wijze aan elkaar geknoopt.

Hebruikbare functionaliteit

Er is ook veel van de functionaliteit herbruikbaar gemaakt. Zo kan je nu met een aantal mixins elk simpel Ruby object nieuwe functionaliteit geven. Het toevoegen van callbacks, validaties en internationalisatie is nu kinderlijk eenvoudig.

Verbeterde API’s

De meest zichtbare impact voor applicatiebouwers zijn de vele nieuwe API’s. Het is nu nog makkelijker om complexe SQL queries te bouwen en om de URL routing te regelen. De nieuwe API’s zijn krachtig en consequent. Een toonbeeld van elegant gebruik van de expressiviteit van Ruby. Petje af voor de ontwerpers hiervan. Ik zou niet meer terug willen naar de Rails 2 API.

Afslanken

Het is goed om te zien dat er ook functionaliteit weggaat uit Rails. De standaard weergave van validatiefoutmeldingen is bijvoorbeeld verhuisd naar een plugin. RJS, een API om in Ruby Javascript te schrijven, wordt langzamerhand ook uitgefaseerd.

Ook wordt Ruby 1.8.6 (terecht) niet meer ondersteund. Dit scheelt in de hoeveelheid workarounds en monkeypatches die in het verleden nodig waren.

Dit houdt Rails klein en flexibel. En dat is essentieel om in hetzelfde tempo te kunnen blijven innoveren. Verouderde functionaliteit is ballast die we daarbij niet kunnen gebruiken.

Conclusie

Tot zo ver deze korte samenvatting van wat Ruby on Rails 3 ons gaat brengen. Het belooft een mooie tijd te worden voor Rails developers. Het framework is klaargemaakt voor het komende decennium. Upgrade vandaag nog!

2 reacties »

  1. [...] This post was mentioned on Twitter by Iain, Died and Peter de Ruijter, Finalist IT Group. Finalist IT Group said: new blogpost: Ruby on Rails 3: Een voorbeschouwing http://bit.ly/9pBl15 #ruby [...]

    Tweets that mention Ruby on Rails 3: Een voorbeschouwing | Finalist Developers Blog -- Topsy.com August 16, 2010 13:03

  2. [...] on Rails 3 is net uit. Twee maanden geleden keek ik er nog op vooruit. Maar Rails staat niet stil. Laten we de kristallen bol uit de kast halen en [...]

    Ruby on Rails 3.1 | Finalist Developers Blog October 7, 2010 18:03

Reageer

RSS feed for comments on this post · TrackBack URI