<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lucamellano.com &#187; Ruby on Rails</title>
	<atom:link href="http://www.lucamellano.com/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lucamellano.com</link>
	<description>web developer web designer freelance consulenza informatica cms blog PHP MySQL C# Web Applications HTML Semantico</description>
	<lastBuildDate>Sun, 03 Jul 2011 19:55:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Imparare Ruby on Rails da zero: Lezione 1</title>
		<link>http://www.lucamellano.com/imparare-ruby-on-rails-da-zero-lezione-1/</link>
		<comments>http://www.lucamellano.com/imparare-ruby-on-rails-da-zero-lezione-1/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 08:14:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[MCV]]></category>
		<category><![CDATA[piattaforma]]></category>

		<guid isPermaLink="false">http://www.lucamellano.com/?p=27</guid>
		<description><![CDATA[Ho letto in giro spesso di web designers, abituati a lavorare con linguaggi come ASP o PHP, che volevano imparare questa nuova tecnologia e non sapevano da dove partire. E' davvero difficile trovare online tutorial degni di questo nome che possano rappresentare un valido startup per chi intende imparare. 
Questa guida si pone come obiettivo di rappresentare (con tutti i propri limiti) una parte di questo "punto di partenza". Sarà divisa in diverse lezioni, pubblicate settimanalmente e sarà costantemente aggiornata con articoli e tutorial di approfondimento su questa rivoluzionaria tecnologia web.]]></description>
			<content:encoded><![CDATA[<p>Chi non ha sentito parlare di Ruby on Rails, e delle sue notevoli caratteristiche? Codice molto efficace, totalmente orientato agli oggetto, e con un&#8217;architettura MCV. Per quanto posso dire della mia diretta esperienza, non solo è tutto vero, ma c&#8217;è anche dell&#8217;altro.</p>
<p><strong>Info su questo tutorial</strong></p>
<p>Ho letto in giro spesso di web designers, abituati a lavorare con linguaggi come ASP o PHP, che volevano imparare questa nuova tecnologia e non sapevano da dove partire. E&#8217; davvero difficile trovare online tutorial degni di questo nome che possano rappresentare un valido startup per chi intende imparare.<br />
Questa guida si pone come obiettivo di rappresentare (con tutti i propri limiti) una parte di questo &#8220;punto di partenza&#8221;. Sarà divisa in diverse lezioni, pubblicate settimanalmente e sarà costantemente aggiornata con articoli e tutorial di approfondimento su questa rivoluzionaria tecnologia web.</p>
<p><span id="more-27"></span></p>
<p>Questa prima lezione potrà apparirvi un pò &#8220;arida&#8221;, ma è necessario conoscere bene i fondamenti di RoR, e di poter configurare in maniera corretta tutto il necessario allo sviluppo. Ragion per cui non solo copriremo questi argomenti, ma vedremo, in linea generale, come funziona il framework. Vi prometto che dalla lezione numero 2 faremo sicuramente cose più interessanti e &#8220;pratiche&#8221;. Ora cominciamo con la teoria.</p>
<p><strong>Cos&#8217;è Ruby</strong></p>
<p>Ruby è un linguaggio di programmazione che gira su framework Rails. E&#8217; molto orientato agli oggetti ed è decisamente ispirato da linguaggi come Perl, Python, Lisp, Dylan e CLU. Questo è un estratto della definizione di Ruby su WikiPedia:</p>
<blockquote><p>Ruby è stato concepito il 24 febbraio 1993 da Yukihiro Matsumoto, intenzionato a creare un nuovo linguaggio che bilanciasse una programmazione funzionale con programmazione imperativa. In pratica voleva un linguaggio che fosse più potente del Perl, e più orientato agli oggetti rispetto al Python.<br />
E&#8217; molto popolare in Giappone, fino all&#8217;arrivo del framework Rails. Da allora ha continuato a crescere in maniera esponziale ovunque.</p></blockquote>
<p><strong>Cos&#8217;è Rails</strong></p>
<p>Rails è il famoso framework che lavoro sotto Ruby. La sua base utenti è in continua crescita. Sviluppato da David Heinemeier Hansson della 37Signals, è stato rilasciato come software open source nel Luglio 2004. Usa un&#8217;architettura MVC (Model View Controller). L&#8217;ultima release è la 2.1.0. Ci sono stati importanti cambiamenti nella v2.</p>
<p><strong>Concetti base di Ruby on Rails</strong></p>
<p>Ruby on Rails segue diversi principi per rendere il codice snello e pulito. Il primo di questi principi è un termine di programmazione di Agile, chiamato <strong>DRY</strong> (<strong>Don&#8217;t Repeat Yourself</strong>). Ovviamente ciò significa che il codice per una determinata funzione verrà scritto una solta volta. Per esempio, se serve che il codice svolga una determinata cosa, lo metteremo in un determinato posto ogni volta che servirà.</p>
<p>Il secondo concetto alla base di ROR è il <strong>CoC</strong> (<strong>Conventions Over Configuration</strong>). Questo significa che Ruby presume tantissimo, e spiega molto dei valori e delle funzioni che Ruby genera di default per noi. Invece di star lì a configurare ogni cosa, per ogni singolo progetto, Ruby lo farà automaticamente per noi. Inoltre, se abbiamo intenzione di realizzare qualcosa di non convenzionale, ci basterà bypassare sensibilmente i valori di default che RoR ha già configurato. Tutto ciò ovviamente ha come risultato molto meno codice da scrivere.</p>
<p><strong>I vantaggi di Ruby on Rails</strong></p>
<ul>
<li>E&#8217; piuttosto semplice da imparare rispetto agli altri linguaggi.</li>
<li>Totalmente orientato agli oggetti.</li>
<li>Architettura MCV.</li>
<li>Non si scrive molto codice.</li>
<li>Molto estensibile.</li>
<li>Open Source.</li>
<li>La community è molto attiva e disponibile nel risolvere le questioni.</li>
<li>Nonostante sia un framework relativamente giovane, è molto completo e con pochi bug.</li>
</ul>
<div><strong>Gli svantaggi di Ruby</strong></div>
<ul>
<li>L&#8217;esecuzione del codice è totalmente diverso, ragion per cui può risultare più lento su server non ottimizzati per l&#8217;uso di Ruby. Questo resta comunque un problema relativo, dal momento che i server con supporto per Rails crescono a vista d&#8217;occhio.</li>
</ul>
<div><strong>Un file tipo di Ruby</strong></div>
<div>I file del linguaggio Ruby hanno l&#8217;estensione <strong>.rb</strong>. Questi file di solito non contengono tag HTML. Di seguito pubblico un estratto di un file Ruby (nello specifico di un controller) dell&#8217;engine di un gioco. Come si può vedere, raccoglie dati da un database e lista i giochi a secondo dei titoli e le diverse categorie:</div>
<div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">class</span><span> GameController &lt; ApplicationController </span></span></li>
<li><span> </span></li>
<li class="alt"><span> <span class="keyword">def</span><span> game_list&lt;br&gt; </span><span class="variable">@title</span><span> = </span><span class="string">&#8217;3&#8242;</span><span>&lt;br&gt; </span><span class="variable">@category</span><span> = </span><span class="string">&#8216;Action&#8217;</span><span>&lt;br&gt; </span><span class="variable">@games</span><span> = Game.find(</span><span class="symbol">:all</span><span>, &lt;br&gt; </span><span class="symbol">:conditions</span><span> =&gt; [</span><span class="string">"title LIKE ? AND category = ?"</span><span>, </span><span class="string">'%'</span><span> + title + </span><span class="string">'%'</span><span>, category],&lt;br&gt; </span><span class="symbol"> <img src='http://www.lucamellano.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> rder</span><span> =&gt; </span><span class="string">&#8216;title, category ASC&#8217;</span><span>,&lt;br&gt; </span><span class="symbol">:limit</span><span> =&gt; 5, </span><span class="symbol"> <img src='http://www.lucamellano.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ffset</span><span> =&gt; 0)&lt;br&gt; </span><span class="keyword">end</span><span> </span></span></li>
<li><span> </span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
</ol>
<div><strong>Un file Ruby inserito in una pagina HTML</strong></div>
</div>
<div>Come molti altri linguaggi, Rails permette di inserire codice Ruby in pagine HTML. Seki Masatoshi ha scritto un programma chiamato <strong>ERb</strong>, <strong>embedded ruby</strong>, che effettua una ricerca tutti i file <strong>.rhtml</strong> (file ruby all&#8217;interno di pagine HTML), fino a trovare o &lt;% Codice Ruby da eseguire %&gt; oppure &lt;%= Codice Ruby da inviare in output %&gt;. Alla fine esegue il codice Ruby e riempie gli spazi vuoti se necessario.</div>
<div>Ecco un esempio di Ruby inserito in una pagina HTML:</div>
<div>
<div><span>&lt;% title = </span><span class="string">&#8220;Nettuts&#8221;</span><span> %&gt;&lt;br&gt;&lt;% header_text = </span><span class="string">&#8220;Ruby on Rails Tutorial&#8221;</span><span> %&gt;&lt;br&gt;&lt;html&gt;&lt;br&gt;&lt;head&gt;&lt;br&gt;&lt;title&gt;&lt;%= title %&gt;&lt;/title&gt;&lt;br&gt;&lt;/head&gt;&lt;br&gt;&lt;body&gt;&lt;br&gt;&lt;h2&gt;&lt;%= header_text %&gt;&lt;/h2&gt;&lt;br&gt;&lt;p&gt;This is an example of a .rhtml page. &lt;/p&gt;&lt;br&gt;&lt;/body&gt;&lt;br&gt;&lt;/html&gt;</span></div>
</div>
<div>Il risultato finale per l&#8217;utente sarà il seguente:</div>
<div>
<ol class="dp-rb">
<li class="alt"><span><span>&lt;html&gt;&lt;br&gt; </span></span></li>
<li><span> &lt;head&gt;&lt;br&gt; </span></li>
<li class="alt"><span> &lt;title&gt; Nettuts &lt;/title&gt;&lt;br&gt; </span></li>
<li><span> &lt;/head&gt;&lt;br&gt; </span></li>
<li class="alt"><span> &lt;body&gt;&lt;br&gt; </span></li>
<li><span> &lt;h2&gt;Ruby on Rails Tutorial&lt;/h2&gt;&lt;br&gt; </span></li>
<li class="alt"><span> &lt;p&gt;This is an example of a .rhtml page. &lt;/p&gt;&lt;br&gt; </span></li>
<li><span> &lt;/body&gt;&lt;br&gt; </span></li>
<li class="alt"><span> &lt;/html&gt; &lt;br&gt;</span></li>
</ol>
<div><strong>Come installare Ruby on Rails su piattaforma Windows</strong></div>
</div>
<div>Gli utenti Windows e quelli OSX sono molto fortunati. Entrambi i sistemi operativi possono contare su un programma all-in-one che installa Ruby, Rails e il server. Per Windows, potete utilizzare Instant Rails. Basta andare su <a href="http://instantrails.rubyforge.org/wiki/wiki.pl">http://instantrails.rubyforge.org/wiki/wiki.pl</a> per scaricarlo. L&#8217;ho usato personalmente e non ho avuto nessun tipo di problema. Credetemi, è molto semplice, altrimenti installate tutto separatamente.</div>
<div style="text-align: center;"><a href="http://www.lucamellano.com/wp-content/uploads/instantrails.png"><img class="alignnone size-medium wp-image-42" title="instantrails" src="http://www.lucamellano.com/wp-content/uploads/instantrails-300x293.png" alt="" width="300" height="293" /></a></div>
<div>Clicca su download per scaricare instantrails.</div>
<div>Al click verrete rediretti su <a href="http://rubyforge.org/frs/?group_id=904">rubyforge.org</a>. Qui è possibile selezionare l&#8217;ultima versione. Al momento è disponibile la versione 2.0 e la maggior parte che supportano Ruby supportano solo la 1.8. Ci sono particolari differenze tra la versione 1 e 2, quindi sta a voi scegliere quale versione installare. In questo tutorial scaricherà la versione 2.0. Una volta completato il download, decomprimete il tutto in una cartella senza spazi.</div>
<div><strong>Installare Ruby on Rails su altri OS</strong></div>
<div>Per l&#8217;installazione di Ruby on Rails su OSX e sugli altri sistemi operativi, può essere utile dare un&#8217;occhiata a questo <a href="http://wiki.rubyonrails.org/rails/pages/GettingStartedWithRails" target="_blank">Wiki</a>.</div>
<div><strong>Iniziamo ad usare il Framework</strong></div>
<div>D&#8217;ora in poi useremo Instant Rails. Non è molto diverso dagli altri pacchetti di installazione, quindi se avete usato un altro tipo, non troverete grandi difficoltà ad andare avanti.</div>
<div>Ora che abbiamo tutti i files decompressi in una cartella, apriamo il file InstantRails.exe. Al primo lancio probabilmente leggere il seguente messaggio, su cui cliccheremo &#8220;OK&#8221;:</div>
<div style="text-align: center;"><a href="http://www.lucamellano.com/wp-content/uploads/instantrails_message.png"><img class="alignnone size-medium wp-image-56" title="instantrails_message" src="http://www.lucamellano.com/wp-content/uploads/instantrails_message-300x120.png" alt="" width="300" height="120" /></a></div>
<p style="text-align: left;">In questo momento Instant Rails è in esecuzione, e possiamo svolgere parecchie funzioni. Al momento ci servirà soltato:</p>
<ul>
<li>
<div style="text-align: left;">Aprire una finestra console;</div>
</li>
<li>
<div style="text-align: left;">Creare un nuovo progetto;</div>
</li>
<li>
<div style="text-align: left;">Lanciare il server per il progetto corrente.</div>
</li>
</ul>
<p style="text-align: left;"><strong>Aprire una finestra Console<br />
</strong>1) Clicchiamo sull&#8217;icona in alto a sinistra:</p>
<p style="text-align: center;"><a href="http://www.lucamellano.com/wp-content/uploads/instantrails_console.png"><img class="alignnone size-medium wp-image-57" title="instantrails_console" src="http://www.lucamellano.com/wp-content/uploads/instantrails_console-300x133.png" alt="" width="300" height="133" /></a></p>
<p style="text-align: left;">2) Vai su &#8220;Rails Applications&#8221; &gt; &#8220;Open Ruby Console Window&#8221;</p>
<p style="text-align: left;">3) Ora abbiamo aperto una finestra console. Qui è possibile fare molte cose, quali la creazione di nuovi progetti, i controller, ed altre operazioni che vedremo in seguito. Ora useremo questa finestra per creare una nuova applicazione.</p>
<p style="text-align: left;"><strong>Creare una nuova applicazione</strong><br />
1) Ora scrivamo &#8220;rails prova&#8221;, dove &#8220;prova&#8221; è il nome della nostra applicazione. Il nome va scelto con cura, perchè sarà usato spesso in tutta l&#8217;applicazione. Dal momento che non faremo nessuna operazione particolare, allora il nome &#8220;prova&#8221; è più che adatto.</p>
<p style="text-align: left;">2) Una volta lanciato il comando, saranno creati tutti i file necessari all&#8217;esecuzione dell&#8217;applicazione.</p>
<p style="text-align: left;">3) In questo momento abbiamo generato un&#8217;applicazione Ruby on Rails.</p>
<p style="text-align: left;"><strong>Eseguire l&#8217;applicazione</strong><br />
1) Per eseguire la nostra applicazione, andiamo nuovamente su Instant Rails e clicchiamo nuovamente sull&#8217;icona in alto a sinistra.</p>
<p style="text-align: left;">2) Da qui, clicchiamo su &#8220;Rails Applications&#8221; &gt; &#8220;Manage Rails Applications&#8230;&#8221;</p>
<p style="text-align: left;">3) Possiamo notare come Instant Rails ha all&#8217;interno già due progetti. &#8220;Cookbook&#8221; è una demo base delle funzionalità di Rails e vi consiglio caldamente di studiarla e una volta presa dimestichezza con Rails, date un&#8217;occhiata anche al codice sorgente. Resterete molto sorpresi dalla semplicità del tutto. Ora però clicchiamo sul checkbox alla sinistra di &#8220;prova&#8221;, e clicchiamo su &#8220;Start with Mongrel&#8221;. Al click ci sarà una notifica del Windows Firewall probabilmente, e possiamo tranquillamente selezionare sblocca. Comparirà una finestra console con alcune interessanti informazioni sull&#8217;ambiente in uso.</p>
<p style="text-align: center;"><a href="http://www.lucamellano.com/wp-content/uploads/server.png"><img class="alignnone size-medium wp-image-58" title="server" src="http://www.lucamellano.com/wp-content/uploads/server-300x180.png" alt="" width="300" height="180" /></a></p>
<p style="text-align: left;">Quindi, in questo caso, possiamo visualizzare la nostra applicazione sulla porta 3000. Possiamo quindi aprire il browser e lanciare l&#8217;indirizzo 127.0.0.1:3000, e avremo la seguente pagina di defaul di Rails:</p>
<p style="text-align: center;"><a href="http://www.lucamellano.com/wp-content/uploads/application.png"><img class="alignnone size-medium wp-image-59" title="application" src="http://www.lucamellano.com/wp-content/uploads/application-300x287.png" alt="" width="300" height="287" /></a></p>
<p style="text-align: left;">Ora possiamo iniziare a costruire la nostra applicazione.</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>COME FUNZIONA IL FRAMEWORK</strong></p>
<p style="text-align: left;"><strong>L&#8217;architettura MVC</strong><br />
Rails gira sull&#8217;architettura MVC. Ciò significa che il codice di sviluppo è diviso in tre sezioni principali: il modello, la visualizzazione e il controller. In questa introduzione di Ruby on Rails scopriremo solo le parti base del controller.</p>
<p style="text-align: left;"><strong>Il Controller</strong><br />
Il controller è rappresentato dalla parte dell&#8217;indirizzo successivo all&#8217;url base. Per esempio, se abbiamo un controller denominato &#8220;learn&#8221;, è rappresentato dall&#8217;indirizzo 127.0.0.1:3000/learn. Per la creazione del controller va utilizzata, come visto in precedenza, la finestra console. Ora vediamo come creare un nuovo controller, chiamato &#8220;learn&#8221;:</p>
<p style="text-align: left;">1) Innanzitutto apriamo, come già abbiamo visto in precedenza, una nuova finestra console da Instant Rails (o dal relativo programma di installazione che avete usato).</p>
<p style="text-align: left;">2) Ora entriamo nella nostra applicazione &#8220;prova&#8221;. Per accedere, cambiare la directory in prova utilizzando il comando &#8220;cd prova&#8221; (cambio directory in prova).</p>
<p style="text-align: left;">3) Siamo entrati nell&#8217;applicazione, e dobbiamo accedere ad un script per generare il controller. Nella struttura della nostra applicazione &#8220;prova&#8221;, noterete la presenza della cartella &#8220;script&#8221;. E, all&#8217;interno di questa cartella, c&#8217;è un file &#8220;generate&#8221; che andremo ad usare per il nostro controller.</p>
<p style="text-align: left;">4) Ora, per creare il nostro controller &#8220;learn&#8221; digitiamo nella finestra</p>
<p style="text-align: left;"><strong>ruby script/generate controller learn</strong></p>
<p style="text-align: left;">A questo punto la console genererà alcuni files. Potete controllarli da  Risorse del Computer. I file più importanti sono il controller &#8220;learn&#8221;, che rappresenta solo uno dei file creati da Ruby; potete inoltre notare che è stata creata anche una vista &#8220;learn&#8221;.<br />
A questo punto, come funziona un controller? Scopriamolo passo per passo:</p>
<ul>
<li>
<div style="text-align: left;">L&#8217;utente effettua una richiesta sull&#8217;indirizzo vostrosito.com/learn;</div>
</li>
<li>
<div style="text-align: left;">Rails automaticamente cerca nel server la directory app/learn_controller;</div>
</li>
<li>
<div style="text-align: left;">Rails cerca il file .rb per la definizione di un indice dei file;</div>
</li>
<li>
<div style="text-align: left;">Rails esegue ciò che è prescritto dalla definizione trovata, ed eventualmente crea o effettua un redirect ad una visualizzazione;</div>
</li>
<li>
<div style="text-align: left;">Questa visualizzazione (learn) viene inviata all&#8217;utente.</div>
</li>
</ul>
<p style="text-align: left;">Non preoccupatevi se al momento non rende molto l&#8217;idea. Nella prossima lezione vedremo nel dettaglio tutto il funzionamento dei controller. Per adesso conoscete come creare e dove risiedono i controller.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucamellano.com/imparare-ruby-on-rails-da-zero-lezione-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

