Corso di Programmazione Web con Ruby on Rails
Sin dal suo debutto nel 2004, Ruby on Rails (o semplicemente Rails
) è velocemente diventato uno dei più potenti e conosciuti framework Model-View-Controller per lo sviluppo di applicazioni web. Negli ultimi due anni si è imposto nella comunità degli sviluppatori ispirando la nascita di tantissimi progetti analoghi realizzati con tecnologie differenti (e.g. Cake per PHP, Trails per Java, Turbogears e Subway per Python etc.).
Rails ha introdotto una novità rivoluzionaria nell'ambito della programmazione Web: se prima della sua nascita per ogni nuova applicazione occorreva sostanzialmente iniziare da zero, oggi grazie a Rails si possono accorciare notevolmente i tempi di sviluppo (e anche decisionali) partendo da un progetto già estremamente ben impostato.
Aziende di diverse dimensioni, da piccole startup a nomi del calibro di Twitter, Disney, Hulu, Pagine Gialle (la lista è in continua crescita) hanno adottato Rails con successo.
Cosa rende Rails così eccezionale?
Innanzitutto, Ruby on Rails è al 100% open-source, disponibile sotto l'estremamente permissiva licenza MIT e da ciò consegue che è gratuito da scaricare e utilizzare. Rails deve molto del proprio successo al proprio design compatto ed elegante, che si regge sulla malleabilità del linguaggio Ruby sul quale è interamente basato, e che ha consentito di creare un linguaggio specifico (domain-specific language) per lo sviluppo di applicazioni web, automatizzando e semplificando al massimo molte delle attività ripetitive (e.g.la generazione del codice HTML, SQL e del routing necessario a gestire i modelli). Da ciò conseguono una più semplice adesione alle best practices (in particolare relative all'Agile Programming), un codice più conciso, leggibile e maggiori scalabilità/mantenibilità.
Rails inoltre si adatta velocemente agli sviluppi in fatto di design e tecnologie web. Per esempio, è stato uno dei primi framework a implementare completamente l'architettura REST (che sarà trattata nell'ambito corso). E appena altri framework sviluppano con successo nuove tecniche vincenti, il creatore di Rails David Heinemeier Hansson e il Rails Core Team non esitano a inglobarne le idee migliori.
Infine, Rails gode di una community estremamente entusiasta e diversificata: centinaia di open-source contributors, conferenze internazionali sempre molto seguite, un enorme numero di gemme (librerie che contengono soluzioni a specifici problemi quali, ad esempio, la paginazione dei contenuti e l'upload di immagini) una ricca varietà di blog informativi e contenuti didattici, una miriade di forum di discussione e così via.
Requisiti preliminari
E' necessaria una buona dimestichezza o almeno conoscenza base dei seguenti argomenti:
- Linguaggio HTML (trattato nel Corso di Introduzione al Web)
- Linguaggio Ruby (trattato nel Corso di Programmazione Ruby e nel Corso di Web Development con Ruby ed SQL)
- Database relazionali (trattati nel Corso di Web Development con Ruby ed SQL)
Durata del corso
120 ore.
Programma del corso
La didattica è incentrata sulla pratica: sin dalla prima lezione lavoreremo a una vera applicazione Ruby on Rails e la metteremo subito online. Una volta chiariti i concetti principali ci lanceremo subito nella realizzazione di un progetto più grande (e.g. un blog o una applicazione per la gestione di ticket o di un carrello per un sito di ecommerce o un social network semplificato) che, includendo tutte le funzionalità più comuni di una applicazione web, ci permetterà di studiare, approfondire e sperimentare subito sul campo le potenzialità di Rails e le principali metodologie di Sviluppo Web.
Da Zero a Deploy
- Installazione di Ruby on Rails
- L'ambiente di Sviluppo
- Version Control con Git
- GitHub, Bitbucket & co.
- Deploy della prima demo app
- Il workflow di sviluppo
Sviluppo di una Applicazione in Ruby on Rails
- Lo Scaffolding
- La Configurazione
- Il Model (Active Record)
- Il Controller (Action Controller)
- La View (Action View)
- Il Routing
- Le Sessioni
- Inviare Email (ActionMailer)
- L'internazionalizzazione (I18n)
Best Practices
- Collaborare con un team di sviluppo: gli SCM, le repository e GIT
- I Test e il Test-Driven Development (TDD)
- Cenni sul Behaviour-Driven Development (BDD)
- Metodologie di Programmazione Agile (Agile Programming)
- Il Refactoring
- La Sicurezza
Attestato di Frequenza e Orientamento
Al termine del Corso ti sarà rilasciato un Attestato di frequenza e ti sarà indicato il corso e/o i contenuti più idonei a proseguire gli studi sulla base delle tue capacità, passioni e aspirazioni.