Ruby on Rails

Ruby on Rails, spesso chiamato RoR o semplicemente Rails, è un framework open source server side per applicazioni web scritto in Ruby. È stato creato da David Heinemeier Hansson (noto anche come DHH) come framework derivato dallo sviluppo dell'applicazione Basecamp per l'azienda 37signals.

Ruby on Rails, spesso chiamato RoR o semplicemente Rails, è un framework open source server side per applicazioni web scritto in Ruby. È stato creato da David Heinemeier Hansson (noto anche come DHH) come framework derivato dallo sviluppo dell'applicazione Basecamp per l'azienda 37signals.

Ruby on Rails è un framework Model-View-Controller (MVC) concepito per facilitare lo sviluppo rapido di applicazioni web, aderendo a design pattern consolidati come Active Record, Convention over configuration (CoC) e Don't repeat yourself (DRY).

Rails è principalmente distribuito attraverso RubyGems, che è il gestore di pacchetti standard di Ruby.

Tra le piattaforme che usano o che hanno usato Ruby on Rails ci sono Airbnb, Bloomberg, Crunchbase, Dribbble, indiexpo, GitHub, Twitch, Twitter e Shopify.

Filosofia

La progettazione e lo sviluppo di Ruby on Rails sono guidati da una serie di principi, tra cui i già citati Don't repeat yourself e Convention over configuration, derivati dalla Rails Doctrine, documento curato dal creatore David Heinemeier Hansson. L'autore stesso afferma che la Doctrine, intesa come insieme di principi, più o meno esplicitamente definiti, sia stato il motore che ha portato il framework al successo. La Rails Doctrine di fatto è un insieme di idee e di "pensieri eretici" sulla programmazione e sui programmatori software.

Tra i pilastri fondamentali della filosofia di Rails uno dei più importanti è il principio secondo il quale il framework dovrebbe essere ottimizzato per la felicità dei programmatori. Basato sul Principio della Minima Sorpresa, che già aveva guidato lo sviluppo di Ruby da parte di Matz, l'ottimizzazione per la felicità dei programmatori spinge Rails verso feature e comportamenti che rendono più piacevole il lavoro quotidiano.

Un punto simile nella dottrina è la passione per il "codice bello": anche la bellezza estetica del codice dovrebbe essere una priorità nel lavoro quotidiano.

Esempio che racchiude entrambi i principi è la possibilità di accedere ai primi elementi di un array con i metodi first, second, third, fourth e fifth. Questo è anche un esempio di "pensiero eretico" secondo l'autore: perché essere costretti ad usare costrutti tecnici come array[0] per accedere al primo elemento di un array quando è molto più bella e divertente da utilizzare la sintassi array.first?

Il principio della Convention over configuration, invece, significa che il programmatore ha bisogno di metter mano alla configurazione soltanto per ciò che differisce dalle convenzioni stabilite dal framework. Ad esempio, se un modello è costituito dalla classe Post, la corrispondente tabella nel database dovrebbe chiamarsi implicitamente posts. Nel caso in cui il nome della tabella fosse diverso questo deve essere specificato manualmente nella configurazione del modello.

Don't repeat yourself, in italiano "non ripeterti", è un principio secondo il quale andrebbe evitata qualsiasi forma di ripetizione o ridondanza della logica del software. Ad esempio, utilizzando il modulo Active Record di Rails, le definizioni dei modelli non devono specificare i nomi delle colonne: il framework può estrarli direttamente dal database, dunque riportarli anche nel programma sarebbe ridondante.

Descrizione

Le applicazioni Rails sono organizzate all'interno di una struttura comune di cartelle e file. Seguendo il paradigma Model View Controller l'applicazione è divisa in tre parti: Modelli, Viste e Controller.

L'accesso al modello è governato dalla libreria Active Record, che fornisce l'Object-relational mapping attraverso il pattern active record: le tabelle diventano classi, le righe corrispondono a istanze delle classi, mentre le colonne sono convertite in attributi. Le classi hanno metodi per eseguire operazioni sulle tabelle (query) o su singole righe (modifica, inserisci, cancella) attraverso metodi come Model.save, Model.update, Model.destroy, Model.find_by.

Per visualizzare i contenuti dinamici, le Viste incorporano codice Ruby dal quale è possibile costruire frammenti JavaScript eseguiti nel browser, oppure documenti XML e/o JSON con struttura che ricalca quella del codice Ruby.

Servizi correlati

Altre voci

F

Framework

In informatica e specificamente nello sviluppo software, un framework (anglicismo che può essere tradotto come struttura, impalcatura) è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) sulla quale un software può essere progettato e…

Leggi la voce →
P

Pubblicità su Internet

La pubblicità su Internet rientra nella categoria dei nuovi media e sfrutta la capacità del Web di raggiungere una quantità notevole di persone. La pubblicità assume un ruolo determinante sia per le imprese, le quali possono raggiungere facilmente un vasto pubblico (ma anche selezionato nei casi…

Leggi la voce →
S

Social media marketing

Il social media marketing o marketing nei social media è quella branca del marketing che si occupa di generare visibilità e interazioni su social media, comunità virtuali e aggregatori 2.0 per imprese, enti pubblici, associazioni, personalità.

Leggi la voce →
Etichetta (informatica)E

Etichetta (informatica)

In informatica un'etichetta o label (in inglese) è un controllo grafico (widget) che mostra informazioni testuali all'interno di un form. È solitamente un controllo statico, che non prevede alcun tipo di interazione con l'utente, ed è usato per identificare (etichettare) un altro controllo…

Leggi la voce →
J

Jitsi

Jitsi è una raccolta di applicazioni di messaggistica multipiattaforma (VoIP), videoconferenze e messaggistica istantanea libere e open source (FOSS) per la piattaforma web, Windows, Linux, macOS, iOS e Android. Il progetto Jitsi è iniziato con il desktop Jitsi (precedentemente noto come…

Leggi la voce →
K

Kraken (sito web)

Kraken è un sito web statunitense per lo scambio di criptovalute operante in Canada, nell'Unione europea, in Giappone e negli Stati Uniti, "il più grande sito di scambio al mondo di Bitcoin in euro in termini di volume e liquidità". L'exchange fornisce scambi di criptovaluta in valuta fiat e…

Leggi la voce →