1 Nov
matte

matte il 1 November 2005 parla di Altro

Cosa è Ruby on Rails?

Ruby on Rails, spesso chiamato RoR o semplicemente Rails, è un framework open source, scritto in ruby, per lo sviluppo di applicazioni web che segue strettamente l’architettura MVC (Model-View-Controller). E’ semplice da usare e permette di sviluppare applicazioni con meno codice rispetto ad altri framework e con pochissime configurazioni. La semplicità deriva dal fatto che il framework è stato estratto da Basecamp, un’applicazione, a mio parere fantastica, per il project management.

Rails è distribuito tramite RubyGems o sotto altre forme a seconda del sistema operativo utilizzato.

Filosofia

Le principali linee guida sono Don’t Repeat Yourself (DRY) e Convention over configuration.

DRY: significa non ripetere te stesso, cioè le definizioni vanno scritte una sola volta all’interno dell’applicazione. (Se ad esempio un record di una tabella necessita di un prezzo, valore numerico positivo, il vincolo viene espresso una sola volta all’interno dell’applicazione).

Convention over configuration: se programmando sono rispettate delle convenzioni stabilite dal rails, non sono necessarie le configurazioni, come indicare il nome di una tabella o le relazioni tra più tabelle del database.

Architettura MVC in dettaglio

Lo sviluppo di un’applicazione in rails ruota completamente attorno a questi tre oggetti, vediamoli uno per uno:

Model: nelle applicazioni con questa architettura il modello consiste nelle classi che rappresentano le tabelle del database. Queste classi derivano da ActiveRecord e, seguendo le convenzioni di RoR, ActiveRecord automatizza la maggior parte delle funzioni necessarie, come il collegamento al database o le relazioni tra le tabelle, tramite delle semplici dichiarazioni all’interno del modello.

View: questa è la vista che presenta all’utente i dati, nel caso di un’applicazione web sotto forma di pagine HTML. E’ possibile l’utilizzo di parti comuni, template, tra le varie pagine (come barre dei menù, piè di pagina, …), l’uso di frammenti di codice richiamati da altri frammenti che rappresentano oggetti o collezioni di oggetti. Questa parte del framework è gestita dall’ActionPack; l’elaborazione dei dati da visualizzare viene fatto all’interno del Controller ed è completamente separato dalla presentazione stessa.

Controller: risponde all’interazione dell’utente, elabora i dati tramite il Model e li visualizza grazie al View. Il controller viene richiamato dall’utente tramite il browser. Il controller deriva da ActionPack, vengono scritti i metodi che sono richiamati direttamente dalle richieste del browser.

Rails permette inoltre di creare lo Scaffold, uno scheletro che consente di effettuare sul database operazioni base come le CRUD (acronimo di Create, Retrieve, Update, and Delete) . Questo scheletro, creando automaticamente i file necessari al modello, alla vista e al controllore, dà all’utente l’opportunità di effettuare operazioni di base come l’inserimento, la modifica, la cancellazione e la visualizzazione dei dati all’interno del database. Inoltre questa struttura può essere utilizzata come base di partenza dell’applicazione che andremo a sviluppare, modificando e ampliando opportunamente le varie parti che lo necessitano.

Ajax on Rails

AJAX (acronimo di Asynchronous JavaScript and XML) è una tecnica che estende le tradizioni applicazioni web e consente di effettuare richieste al server senza la necessità di ricaricare l’intera pagina nel browser dell’utente. In pratica è possibile realizzare applicazioni tipo GMail o Google Maps che hanno pagine che funzionano come applicazioni desktop. Rails supporta direttamente le chiamate AJAX e grazie a delle funzioni presenti all’interno del framework è possibile effettuare chiamate al server con una sola riga di codice.

Web Server

WEBBrick: web server piccolo e leggero senza alcun settaggio da effettuare. Comodo per lo sviluppo e il test dell’applicazione, non adatto per la produzione. Apache o Lighttpd raccomandati con FastCGI o qualsiasi altro server web che supporta CGI o FastCGI.

Database

Sono supportati diversi database tra cui MySQL, PostgreSQL, SQLite, DB2, Oracle and SQL Server.

Il sito ufficiale di Ruby on Rails è www.rubyonrails.org.