panoramica-su-ruby-on-rails

hamen's picture

Rails e' un framework per lo sviluppo web, scritto in Ruby.
Un framework puo' essere visto come le fondamenta di un'applicazione web. Si prende cura di tutti quei dettagli di basso livello che possono diventare ripetitivi e noiosi da programmare, liberando il programmatore e consentendogli di dedicarsi allo sviluppo delle funzionalita' dell'applicazione. Un framework mette a disposizione del programmatore classi che implementano funzionalita' comuni a tutte le applicazioni web:

  • l'interazione col database
  • templating, riutilizzo del codice
  • gestione delle sessioni

In sostanza, un framework e' una applicazione iniziata per conto dello sviluppatore e progettata nel migliore dei modi. La struttura e il codice che si occupa delle cose "noiose" per lo sviluppatore sono gia' scritte e lo sviluppatore puo' dedicarsi a resto del progetto.

Rails copre tutte le necessita' dello sviluppatore MVC, dall'astrazione del database al rendering dei template.
Diversamente da quello che si possa pensare, Rails non e' stato creato come vero e proprio framework. E' stato "estrapolato" da una applicazione reale che era gia' in uso. Gli sviluppatori pensarono di utilizzare parte di questa applicazione anche nelle loro future applicazioni. La prima beta e' datata Luglio 2004. La versione 1.0 e' del Dicembre 2005. La 2.0 e' stata rilasciata il 7 Dicembre 2007.

Ruby e' un linguaggio ad oggetti di estrema espressivita' e potenza, che riesce a fondere in una sintassi semplice e chiara funzionalita' ereditate da Perl, Python, Lisp e SmallTalk.


L'MVC e' un design pattern che divide il modello dei dati (model), l'interfaccia utente (view) e la logica (controller) in tre distinte entita'. Rails separa fisicamente le tre entita' in tre differenti directory e differenti file.

» Model: viene gestito da una libreria chiamata ActiveRecord, che si occupa di tutta la logica di business e che permette l'accesso a numerosi DataBase bastati su SQL. Con questa libreria si stabilisce un collegamento tra le classi scritte in Ruby e le tabelle del DB. Ad una classe Film corrispondera' una tabella Films e i campi della tabella Films saranno accessibili come attributi della classe Film.

» Controller: l'interazione con l'utente e' demandata ai controller rappresentati dalla libreria ActionController, che si occupa di fornire le funzionalita' di alto livello. Gestisce le richieste del browser e facilita la comunicazione fra Model e View. Tutti i controller creati dall'utente ereditano da ActionController. L'ApplicationController raccoglie funzionalita' condivise nell'intera applicazione.

» View: ad ogni azione del controller corrisponde una vista. ActionView gestisce l'aspetto delle pagine da restituire al client. Sono per lo piu' file .rhtml che contengono delle direttive scritte in Ruby immerse nel codice XHTML.

Curiosita' su Ruby on Rails

» DRY: "Don't repeate yourself". Rendere il codice modulare. Sfruttare il riuso del codice.

» Convention over configuration: finche' si seguono le idee seggerite dagli autori del framework non si dovra' configurare nulla.

» Possiamo applicare un metodo senza le parentesi se non c'e' ambiguita'. Allo stesso modo possiamo omettere il ";" finale.

» Qualsiasi cosa composta da ":" seguita da una parola e' un simbolo. Un simbolo serve a chiamare una cosa per nome o a specificare il valore di una opzione

» Le variabili di istanza devono avere una "@" davanti (come this. in Java). E' necessario perche' in Ruby non c'e' una parte dedicata alle dichiarazioni e l'interprete potrebbe non capire quando si intende una variabile di istanza visibile in tutto l'oggetto o una variabile locale.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.