Guida Ruby on Rails: introduzione
Benvenuti! Oggi vi presento la guida dedicata a Ruby on Rails!
Nel corso di questo primo articolo affronteremo i temi fondamentali per approcciarci a questo framework: cos’è Ruby on Rails, perché scegliere di utilizzarlo e come configurare l’ambiente di lavoro nei tre principali sistemi operativi.
Senza ulteriori preamboli, iniziamo!
Cos’è Ruby on Rails
Ruby on Rails, abbreviato spesso in RoR o Rails, è un framework open source scritto in Ruby e basato sul design pattern Model-View-Control.
Analizziamo questa prima affermazione:
- Cos’è un framework? Un framework è, in breve, un’architettura logica che facilita il lavoro del programmatore. Attraverso un insieme di librerie, il programmatore avrà, infatti, il solo compito di concentrarsi sul codice dell’applicazione stessa, evitando di ripetersi nella scrittura di funzioni già scritte e, invece, direttamente implementabili.
- Che vuol dire Model-View-Control? Sintetizzato nella sigla MVC, questo paradigma rappresenta un pattern architetturale basato sulla separazione dei ruoli fra tre differenti componenti, per l’appunto il model, la view e il control. Nel corso dei prossimi articoli, avremo modo di approfondire i vari ruoli dei componenti e l’interazione tra essi.
Bene. Ora che abbiamo la definizione di cosa è RoR, dobbiamo capire perché utilizzarlo, preferendolo ad altri!
Perché scegliere Ruby on Rails
I maggiori vantaggi di RoR, riguardano la semplicità! Il linguaggio di scripting Ruby permette di esprimere idee, muovendosi all’interno di un codice pulito e facile da scrivere. La filosofia attorno alla quale ruota interamente RoR è riassumibile in due concetti chiave:
- DRY – Queste tre lettere sono, in realtà, l’acronimo di Don’t Repeat Yourself. Chi conosce l’inglese, avrà intuito che ciò significa, nella pratica, l’assenza di ripetizioni all’interno del codice. Le definizioni necessitano di essere scritte un’unica volta!
- Convention Over Configuration – Ovvero, se rispetti le convenzioni standard di Rails, non sono necessarie configurazioni aggiuntive.
Inoltre Rails è agile. Cosa vuol dire agile? Semplice! Vuol dire che Rails segue le linee guida del Manifesto per lo sviluppo agile sintetizzabili in:
- I singoli e le interazioni prevalgono sui processi e gli strumenti;
- La collaborazione dei clienti prevale sulla negoziazione contrattuale;
- L’adattamento alle modifiche prevale sull’adesione a un piano;
- Il software funzionante prevale sulla documentazione estesa;
Nella pratica i clienti e gli sviluppatori della comunità hanno più controllo sul software in corso di sviluppo e ciò rende possibile una maggiore reattività ai cambiamenti, con modifiche al codice più veloci ed efficaci. Inoltre, pur non disprezzando la comune documentazione, Rails è avvalorato da un’ampia comunità online che generalmente è in grado di soddisfare quasi ogni richiesta di supporto. Ecco i principali link delle comunità:
In sintesi creare complesse applicazioni come blog, e-commerce e social network diventa un compito meno arduo del previsto con Ruby on Rails. Tutto, infatti, ruota intorno al concetto fondamentale di gems, ovvero di librerie sempre ben documentate e facilmente implementabili e personalizzabili, attraverso le quali diventa semplice creare funzioni che altrimenti richiederebbero giorni di sviluppo.
Installazione di Rails
Le seguenti istruzioni fanno ovviamente riferimento alle ultime versioni degli OS in questione al momento della scrittura dell’articolo. Se desiderate ricevere istruzioni per differenti sistemi, oppure tramite metodi differenti, potete visitare il sito GoRails.
Windows
L’installazione su macchine Windows è, senza dubbio, la più semplice delle tre. Vi basterà effettuare il download di RailsInstaller dal sito ufficiale e seguire la procedura guidata che vi permetterà, volendo, di installare anche un sistema di Version Control come Git.
Mac OS X 10.9
Come prima cosa, avete bisogno di installare Xcode. Potete facilmente effettuare il download attraverso l’AppStore. Una volta completata la procedura, aprite il sito dedicato agli sviluppatori Apple, effettuate l’accesso e scaricate il pacchetto Command Line Tools per la vostra versione di Xcode. Installato il pacchetto, aprite il terminale e installate la versione development di RVM usando il seguente comando:
\curl -L https://get.rvm.io | bash -s stable --ruby
Appena completato il processo, aggiornate RVM all’ultima versione e installate Ruby:
rvm get stable --autolibs=enable rvm install ruby rvm --default use ruby-2.1.2
Infine digitate, sempre nel terminale, il seguente comando per installare l’ultima versione di Rails:
gem install rails
Linux Ubuntu 14.04
Il primo passo è quello di aggiornare alcune dipendenze necessarie a Ruby. Dal terminale, utilizzate il seguente comando:
sudo apt-get update sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties
Una volta completato, potete passare all’installazione di RVM:
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev curl -L https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc rvm install 2.1.2 rvm use 2.1.2 --default ruby -v
Procedete con l’installare NodeJS, indispensabile per gestire i file CoffeeScripts:
sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
Finalmente, come ultimo passo, installate Rails e controllate l’avvenuta configurazione:
gem install rails rails –v
Conclusioni
Dalle procedure d’installazione avrete capito che è richiesta una certa familiarità con la shell di comando del vostro sistema operativo, sia esso il terminale di Mac OS X o il cmd di Windows. Nel corso della guida utilizzeremo numerose volte la shell, quindi, nel caso non l’abbiate mai usata prima, vi consiglio di imparare per lo meno i comandi base come, ad esempio, spostarsi da una cartella all’altra, creare e copiare file, etc.
Inoltre, prima di proseguire nella lettura dei futuri articoli, vi faccio presente che sono richiesti, come prerequisiti, la conoscenza perlomeno basilare di HTML, CSS e JavaScript. In poche parole, dovete aver chiaro com’è costituita una pagina web.
Nel corso della prossima lezione ci occuperemo di configurare l’ambiente di lavoro, scegliendo quindi un editor e un sistema di versioning, e dando vita alla nostra prima applicazione!
GUIDA RUBY ON RAILS: INDICE LEZIONI
1) Introduzione
2) L’ambiente di lavoro e la nostra prima app
3) Un assaggio di dinamicità
4) Architettura di un’applicazione
5) Il linguaggio Ruby – Parte 1
6) Il linguaggio Ruby – Parte 2
7) Creiamo c-Bookcase
8) Convalida e test
9) Ruby on Rails: page layout
10) Guida Ruby on Rails: creiamo il carrello
23 commenti
Trackback e pingback
-
Guida Ruby on Rails: l’ambiente di lavoro e la nostra prima app | Your Inspiration Web
[…] approfondiremo nel corso delle prossime lezioni e come abbiamo accennato nell’articolo introduttivo, Rails è un framework Model-View-Controller, quindi, una… -
Guida Ruby on Rails: un assaggio di dinamicità | Your Inspiration Web
[…] RUBY ON RAILS: INDICE LEZIONI 1) Introduzione 2) L’ambiente di lavoro e la nostra prima app 3) Un assaggio… -
Guida Ruby on Rails: il linguaggio Ruby – Parte 1 | Your Inspiration Web
[…] RUBY ON RAILS: INDICE LEZIONI 1) Introduzione 2) L’ambiente di lavoro e la nostra prima app 3) Un assaggio… -
Guida Ruby on Rails: architettura di un’applicazione | Your Inspiration Web
[…] RUBY ON RAILS: INDICE LEZIONI 1) Introduzione 2) L’ambiente di lavoro e la nostra prima app 3) Un assaggio…
Ciao,
ho un problema con l’istallazione:
Dopo l’installazione da terminale di RVM, mi scrive:
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.9/x86_64/ruby-2.1.3.
Continuing with compilation. Please read ‘rvm help mount’ to get more information on binary rubies.
Checking requirements for osx.
About to install Homebrew, press `Enter` for default installation in `/usr/local`,
type new path if you wish custom Homebrew installation (the path needs to be writable for user)
: Requirements installation failed with status: 1.
Sai per caso dirmi come risolverlo?
Grazie
Ciao Marco.
Prova ad installare manualmente Homebrew digitando nel terminale:
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
Una volta completata la procedura, digita brew doctor e immediatamente dopo ripeti l’installazione di RVM digitando nuovamente:
\curl -L https://get.rvm.io | bash -s stable –ruby
In questo modo dovresti risolvere.
Fammi sapere. :)
Ho copiato e incollato nel terminale la riga per installare Home brew ma mi scrive il seguente errore:
-e:1:in `’: undefined local variable or method `“’ for main:Object (NameError)
Marco, prova a non copiare ed incollare ma a digitare manualmente quel comando.
Ho come l’impressione che copiando dal sito le ” sono mal interpretate.
Tienimi aggiornato.
Si era proprio quello il problema!
Ok, l’installazione è andata a buon fine: unica cosa, alla fine o messo come default ruby-2.1.3
Grazie per l’aiuto: seguirò volentieri le tue lezioni e complimenti!
A presto
Hai fatto benissimo a mette il 2.1.3 di default in quanto è quella l’ultima release stabile.
Al momento in cui scrivevo era quella precedente. Ovviamente il comando è valido per qualsiasi versione tu decida di installare.
Ciao,
la guida premette bene e spero che sarà seguita da molti.
Ho solo una domanda:
questo framework permette di generare effettive pagine html ed eventualmente codice javascript da poter poi caricare su un normale Host, oppure può essere implementato solo su Host con macchine virtuali sulle quali far eseguire Rails?
Spero che la mia domanda risulti chiara.
Ciao Simone.
Prima di tutto grazie dell’apprezzamento.
Per la questione dell’hosting, è necessario ricorrere a servizi che supportano macchine virtuali su cui eseguire RoR. Per citarne uno: Heroku. Ovviamente, andando avanti con la guida, avrò modo di spiegare dettagliatamente anche questa situazione.
Ciao Luca,
complimenti per l’ottimo articolo, l’unica cosa che ti chiedo è questa: perchè quando clicco sul tuo sito finisco su un’altro URL?
A presto
Stefano
Ciao Stefano.
Grazie per il complimento.
Purtroppo, per quanto riguarda il mio sito, ho avuto un problema con il dominio che, quindi, non risulta più in mio possesso. Piano piano sto rimuovendo tutte le mie descrizioni che rimandano ad esso, grazie per avermelo segnalato.
Questa guida sembra buona
Grazie Nicolò.
Non perderti le prossime lezioni, spero ti possano piacere. :)
(Mi ha tagliato il commento)
Questa guida sembra buone ;)
Solo un a domanda… per usare rails che livello di conoscenza di ruby bisogna avere? Base? O avanzato?
Dedicherò qualche capitolo a Ruby spiegandone tutte le tecniche basilari.
Ovviamente se hai modo di imparare Ruby in modo più approfondito sicuramente ne trarrai vantaggio con Rails.
Beh, il mio livello di ruby è pico più di “base”… spero di riuscire a starti dietro…
PS Grazie per le risposte rapidissime ;)
Per chi volesse imparare a usare meglio la shell di Mac OS X, ho trovato questa utile guida:
http://wiseheartdesign.com/articles/2010/11/12/the-designers-guide-to-the-osx-command-prompt/
Spero vi sia utile, come lo è per me.
Ciao!
Ciao Marco,
grazie mille per l’utile contributo. :)
Sono uno sviluppatore PHP (web development e web design),in giro si dice che Ruby on Rails a livello di prestazioni e di sicurezza sia migliore sia di Php che di Java.In base alla sua esperienza,è in grado di dare la sua opinione su un tale confronto? Ho già seguito due mini-guide su RoR,al di là della indubbia utilità di avere un framework piuttosto flessibile,tuttavia,questioni riguardanti le applicazioni web come per esempio la gestione delle sessioni,i cookies,e questioni riguardanti l’hacking come per esempio il session hijacking, l’sql injection,….non vengono mai trattati.Come mai?
Ciao Claudio,
Qui puoi trovare tutto quello che serve sapere sulla registrazione degli utenti e sono anche trattati alcuni stratagemmi utilizzati da Rails per evitare gli attacchi più comuni: http://www.railstutorial.it/book/sign_up
Per informazioni più dettagliate (in inglese) puoi consultare la guida ufficiale sulla sicurezza di Rails: http://guides.rubyonrails.org/security.html