Abbiamo già fatto la conoscenza di Ruby on Rails nella prima guida: un framework open source per la realizzazione di siti e applicazioni internet che si pone l'obiettivo di rendere lo sviluppo Web rapido ed efficiente. Rails è scritto in Ruby, un linguaggio di programmazione dinamico a oggetti, e offre strumenti per lo sviluppo di tutte le componenti di un'applicazione Web, dal database fino agli effetti Ajax sulle pagine HTML.
Fin dal suo prima rilascio, Rails si è distinto per alcune caratteristiche che rendono semplice e piacevole lo sviluppo di nuove applicazioni:
- l'implementazione del pattern MVC, che permette di organizzare il codice in una struttura coerente e di facile comprensione
- la presenza di task automatici per l'esecuzione di procedure ripetitive
- l'utilizzo di metaprogrammazione e generazione automatica del codice per aggiungere con il minimo sforzo nuove funzionalità alla propria applicazione
- l'adozione del paradigma Convention Over Configuration per di ridurre i file di configurazione necessari all'applicazione; tutte le componenti di un progetto Rails per convenzione hanno determinate caratteristiche; solo nel caso di caratteristiche particolari è necessario scrivere del codice
- il pieno supporto per la metodologia DRY (Do not Repeat Yourself) per riutilizzare il codice all'interno di un progetto, e per condividere codice fra differenti progetti
- la suite di test integrata per la scrittura e l'esecuzione di unit test, test funzionali e di integrazione
Rails è stato estratto dal suo autore, David Heinemeier Hansson, dal codice di Basecamp, un'applicazione Web per il project management di 37signals, e rilasciato come progetto open source nel 2004; intorno al progetto si è sviluppata nel tempo una community molto attiva, tanto che la versione 2.1, rilasciata a giugno del 2008, ha visto la partecipazione di 1400 collaboratori che hanno contribuito con oltre 1600 patch. L'interesse verso il framework si è espresso anche con la pubblicazione di numerosi libri, blog, e l'organizzazione di conferenze in tutto il mondo.
Cosa c'è di nuovo in Rails 2
Con la versione 2.0 rilasciata nel dicembre del 2007, sono state introdotte alcune funzionalità che rendono l'adozione di Rails ancora più appetibile:
- Supporto semplificato per Web service REST, che permettono l'esposizione delle funzionalità delle applicazioni realizzate con Rails
- Gestione avanzata della cache, con supporto per la memorizzazione su file, in RAM o tramite
memcache
- Multiview, per creare viste in differenti formati (HTML, XML, JSON, CSV, ...) a partire da uno stesso codice di base
- Distribuzione automatica degli asset (file di immagine, javascript, fogli si stile) su più server e compressione dei file Javascript per aumentare le performance dell'applicazione
- Annotazione del codice
Oltre all'introduzione di nuove funzionalità, lo sviluppo di Rails si è concentrato all'aumento delle performance del framework, con l'ottimizzazione se non la riscrittura completa delle porzioni di codice meno performanti.
Caratteristiche tecniche
Ruby on Rails è scritto in Ruby, un linguaggio di programmazione disponibile per molti sistemi operativi (Windows e la quasi totalità dei sistemi operativi 'nix). Esistono diverse implementazioni di Ruby, differenti per motivazioni e per tecnologia utilizzata; fra queste due sono considerate sufficientemente mature da essere utilizzate per ambienti di produzione:
- Ruby MRI è l'implementazione ufficiale di Ruby, riferimento per tutte le altre implementazioni
- jRuby è un'implementazione di Ruby in Java che permette di eseguire programmi Ruby e Rails su JVM
Altre implementazione degne di nota, anche se non ancora da considerarsi complete, sono IronRuby, sviluppato per essere eseguito su piattaforma .NET, e Rubinious, una riscrittura di Ruby in Ruby.
Rails supporta diversi database fra cui MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, Firebird, e offre supporto per l'utilizzo di Web service REST e SOAP.
Come leggere questa guida
Questa guida è divisa in tre sezioni principali. Nella prima sezione viene offerta una panoramica su Ruby on Rails 2 e vengono descritte le procedure di installazione su sistemi Windows, OSX e Linux; nella seconda sezione realizzeremo un'applicazione per la gestione di bookmark, analizzando le differenti componenti del framework e le procedure di sviluppo in Rails; nella terza parte approfondiremo i concetti incontrati nelle sezioni precedenti utilizzando come banco di prova il codice dell'applicazione precedentemente creata.