Quando non usare Ruby on Rails
Non è insolito che una nuova tecnologia abbia origine dal successo di un progetto di ricerca sviluppato in qualche parte del mondo. Ad esempio, possiamo trovare nella storia il modello di un framework web come Python / Django , che è stato originariamente sviluppato per gestire una serie di siti orientati alle notizie per la società LJworld . È stato anche il caso di Ruby on Rails , che è stato estratto dalla base di codice di un popolare strumento software di gestione progetti e collaborazione online – Basecamp – dal suo creatore, David Heinemeier Hansson (DHH).
Ruby on Rails (RoR) è un framework per applicazioni web full-stack open source basato sul linguaggio di programmazione Ruby , che sfrutta il modello di architettura Model/View/Controller (MVC). Ruby on Rails è stato originariamente rilasciato nel luglio 2004 e da allora abbiamo avuto nove importanti rialzi di versione. La versione attuale è stata distribuita con il numero 3.2 nel gennaio 2012. Nel corso degli anni, Ruby on Rails è cresciuto in termini di numero di funzionalità che consentono agli sviluppatori di ottenere di più in meno tempo. Tuttavia, durante tutti quegli anni, i principi fondamentali di Rails, gli stessi principi che hanno portato DHH a creare il framework, sono rimasti invariati. I principi “Convention over Configuration” (CoC) e “Don’t Repeat Yourself” (DRY) sono importanti oggi giorno come lo erano nel 2004. “Convention over Configuration” è un paradigma di progettazione software che incoraggia gli sviluppatori a concentrarsi su “cosa stanno facendo” anziché su “come lo stanno facendo”; l’approccio è pensato per aumentare la loro produttività. Il principio DRY a sua volta è definito nel modo seguente: “Ogni pezzo di conoscenza deve avere una rappresentazione singola, non ambigua e autorevole all’interno di un sistema”, che, in parole povere, significa: mantieni la tua logica aziendale in un unico posto. Seguendo il concetto DRY, l’introduzione di modifiche all’applicazione Ruby on Rails diventa un processo relativamente rapido e semplice.
Ecco i punti schematizzati su cosa parleremo in questo articolo “Quando non usare Ruby on Rails“
- RUBY ON RAILS – PUNTI DI FORZA E DEBOLEZZA
- PRO DI RUBY ON RAILS:
- CONTRO DI RUBY ON RAILS:
- PROGETTI WEB / TIPI DI APPLICAZIONI ADATTI PER RUBY ON RAILS
- TIPI DI APPLICAZIONE MENO ADATTI PER RUBY ON RAILS
- Blog
- Sistemi di gestione dei contenuti
- Pagine della brochure
- Applicazioni web semplici e minimaliste
- Applicazioni generiche di e-commerce
- Applicazioni finanziarie altamente sicure
- CONCLUSIONE
RUBY ON RAILS – PUNTI DI FORZA E DEBOLEZZA (Quando non usare Ruby on Rails)
Ruby on Rails, come ogni strumento, deve pagare il suo prezzo. Tuttavia , nessuna tecnologia è una panacea; ognuna ha i suoi punti di forza e di debolezza e deve essere usata correttamente per ottenere i risultati desiderati. Quindi, dove brilla davvero Ruby on Rails?
PRO DI RUBY ON RAILS:
Velocità di sviluppo
Sembra che Ruby on Rails abbia molto da offrire in termini di velocità di sviluppo . Yukihiro Matsumoto, il creatore del linguaggio Ruby, una volta ha osservato di aver progettato Ruby pensando alla produttività e al divertimento dei programmatori . Ruby segue il principio del minimo stupore (POLA). Ciò significa che il linguaggio dovrebbe comportarsi in modo tale da ridurre al minimo la confusione per i suoi utenti. Questo era infatti il principale obiettivo di progettazione di Matz: creare un linguaggio che lui stesso avrebbe apprezzato usare, riducendo al minimo il lavoro del programmatore e la possibile confusione.
La storia delle fondamenta del framework Rails non è diversa. David Heinemeier Hansson ha creato il framework di sviluppo web Ruby on Rails per liberare i programmatori da quella che considerava una “codifica ripetitiva”, tipica di piattaforme come Java, ad esempio. Fin dall’inizio, Ruby on Rails ha enfatizzato la Convenzione sulla Configurazione e il principio di sviluppo Agile di Don’t Repeat Yourself. La versione Rails 3.2.3 attualmente disponibile deriva direttamente dai principi di Matz e DHH e migliora sostanzialmente la produttività dello sviluppatore. È il carico di lavoro intrinsecamente ridotto il fattore chiave dietro la velocità: le proprietà di Ruby on Rails consentono di sviluppare (alcune) app molto più velocemente rispetto ad altre tecnologie.
Flessibilità – Quando non usare Ruby on Rails
La capacità di modificare facilmente un’applicazione web in risposta al feedback dei clienti/utenti è fondamentale per gli imprenditori che sviluppano nuovi prodotti/imprese basate sul web. Possiamo guardare un’interessante presentazione sull’argomento di Eric Ries, il creatore della metodologia Lean Startup e l’autore del libro The Lean Startup e del blog Startup Lessons Learned . Nella presentazione, Eric parla specificamente di Rails e start-up. Mostra il valore che Ruby e Rails hanno portato al mondo delle start-up. Uno dei principali vantaggi è la flessibilità della tecnologia, che consente facili modifiche quando, ad esempio, è necessario modificare la soluzione sviluppata. Con Rails è davvero facile creare applicazioni che incorporano molti componenti apparentemente non correlati come un blog, un forum, un cms, un e-commerce ecc.
Costo di sviluppo
Se consideriamo i punti di forza di Ruby on Rails sopra menzionati, ovvero la produttività dello sviluppatore, la flessibilità della tecnologia, la disponibilità di componenti open source gratuiti e li mettiamo in relazione ai costi di sviluppo, vedremo alcuni risultati interessanti. Infatti, scopriremo un altro vantaggio di Rails: per alcuni tipi di progetti, il costo di sviluppo potrebbe essere significativamente inferiore rispetto a se fossero implementati con tecnologie meno flessibili, più pesanti o non open source, come Java o .Net.
Ruby on Rails va di pari passo con “Agile” – Quando non usare Ruby on Rails
Se riteniamo che Agile sia la metodologia da adottare nel tuo progetto, RoR è la tecnologia che facilita l’approccio. La potenza di Rails aiuta a mantenere i cicli di sviluppo davvero brevi e quindi facilita l’applicazione delle metodologie agili. Rails è, ad esempio, molto orientato a TDD / BDD , anche al punto che TDD non sembra un compito aggiuntivo che un programmatore deve eseguire per ottenere i risultati desiderati. Per alcuni programmatori Ruby on Rails seguire la tecnica TDD può sembrare l’unico modo di lavorare. Pertanto, Ruby on Rails è una scelta perfetta se vuoi usare le metodologie di programmazione spesso associate a tecniche come TDD / BDD, ovvero Agile o Scrum .
Community fiorente – Quando non usare Ruby on Rails
Questo attributo è spesso sottovalutato o addirittura trascurato del tutto, perché si traduce nella forza della tecnologia solo indirettamente. Nessun progetto o iniziativa può prosperare a lungo senza il coinvolgimento e il contributo delle persone che lo circondano. Ruby on Rails ha una grande e appassionata comunità che spinge incessantemente la tecnologia in avanti, sviluppando il framework Rails, introducendo miglioramenti sotto forma di plugin ed estensioni, migliorando la documentazione, ecc. Una comunità così consolidata aumenta le possibilità che tra qualche anno sarai ancora in grado di trovare le persone con le competenze necessarie per sviluppare ulteriormente/mantenere la tua applicazione Rails.
CONTRO DI RUBY ON RAILS – Quando non usare Ruby on Rails:
E’ difficile chiedere a chi sviluppa in Ruby on Rails di elencare i punti deboli. Di seguito abbiamo raccolto il feedback di alcuni sviluppatori PHP, Python e Java. Oltre a ciò, abbiamo cercato cosa dice “la rete” sui punti deboli di questa tecnologia.
Tutto sommato, ho cercato di restare all’interno di un quadro più ampio senza impantanarmi nei dettagli. Ecco l’elenco:
Prestazione
“Ruby è lento”: l’ho sentito dire molte volte. Innanzitutto, bisogna riconoscere che il framework Rails, che ha reso popolare il linguaggio Ruby, risale al 2004. Parte dell’argomento potrebbe essere un ricordo del passato nel 2012. Abbiamo un nuovo interprete YARV e thread nativi (Fibers) che hanno aiutato Ruby a liberarsi del suo stigma di “lento”. C’è l’eccellente implementazione JRuby basata su JVM, così come Rubinius dove è possibile sfruttare la potenza dell’esecuzione tramite thread. La comunità Ruby ha investito molto impegno nel rendere Ruby e Ruby on Rails un’opzione decente quando si tratta di prestazioni. Pertanto, ciò che era vero in generale nel, diciamo, 2007, non è necessariamente vero oggi. Oggi Ruby è paragonabile (in termini di prestazioni) ad altri linguaggi dinamici e interpretati come Python o Perl. Un’applicazione web può diventare un po’ lenta e pesante quando diventa più grande, ma un buon programmatore Ruby ha i mezzi per ottimizzarne le prestazioni se e quando necessario.
Documentazione scadente
Una buona documentazione è una parte essenziale di qualsiasi progetto, incluso un linguaggio di programmazione. Ci sono molte voci che si lamentano che Ruby on Rails non abbia una documentazione adeguata. Le lamentele erano abbastanza forti da provocare post di blog e note di rilascio dedicati interamente per confrontarsi con le critiche. In linea di principio, il caso è simile alle obiezioni riguardanti le prestazioni di Ruby. Ruby on Rails non è più una tecnologia scarsamente documentata . Oggi ci sono molte risorse tra cui scegliere, ad esempio RailsTutorial.org , Rails Guides , Rails API Docs , Rails 3 Free Screencasts e molti libri correlati.
Cambiamenti costanti e rapidi del sistema
La rapida evoluzione di Ruby on Rails nella sezione contro può sembrare sconcertante per alcuni. Potrebbe implicare che una tecnologia che non cambia sia desiderabile. C’è un prezzo da pagare per rimanere al limite. Ruby on Rails si è evoluto attraverso diverse revisioni importanti e ciascuna ha introdotto alcune incompatibilità tra loro. Inoltre, ogni versione importante ha effettivamente reso obsoleti alcuni plugin esistenti. Gli sviluppatori di Ruby on Rails devono prendere decisioni su “come” vogliono implementare determinate funzionalità come, ad esempio, autenticazione , notifica delle eccezioni , mapping object-relational , interfaccia di amministrazione ecc. . Inoltre, ogni soluzione specifica è gravata da dipendenze e può diventare imprevedibilmente obsoleta dopo il rilascio di una nuova versione di Ruby on Rails. Spesso non ci sono risposte semplici su quale sia il modo migliore per procedere.
Tutto quanto sopra, unito alla complessità di Ruby on Rails stessa, che richiede enormi quantità di conoscenze periferiche per essere compresa, rende a volte difficile per lo sviluppatore tenere il passo con le ultime modifiche.
Un altro punto è: perché dovrebbe preoccupare gli imprenditori, che alcuni programmatori possano avere difficoltà a tenere il passo? I buoni sviluppatori sono molto efficienti sulla piattaforma Ruby on Rails. Ma è difficile trovare buoni sviluppatori Ruby on Rails. E questo potrebbe essere un problema: Ruby on Rails potrebbe essere la migliore tecnologia per il nostro progetto, ma trovare buoni programmatori Ruby on Rails potrebbe essere una grossa criticità.
Lo sviluppo del framework Ruby on Rails è guidato dalla community
Questo è fondamentalmente un seguito al punto precedente. Ruby on Rails è sviluppato dalla sua community. Questo ha un lato positivo e uno negativo. Il lato negativo è che non esiste un’istituzione formale che si assumerebbe la responsabilità delle modifiche introdotte nel framework . Non esiste una roadmap a lungo termine delle modifiche e non ci sono garanzie quando si tratta di supporto di alcun tipo. Questo potrebbe scoraggiare alcune aziende/istituzioni dallo scegliere Rails, perché Java o .Net, supportati rispettivamente da Oracle e Microsoft, potrebbero sembrare un’opzione “più sicura” e più solida. In linea di principio, più grande è l’azienda, più è probabile che scelga le tecnologie mainstream aziendali supportate da attori aziendali.
PROGETTI WEB / TIPI DI APPLICAZIONI ADATTI PER RUBY ON RAILS
Ora che conosciamo i pro e i contro del framework Ruby on Rails, possiamo provare a identificare il tipo di progetti web/tipi di applicazioni che si prestano allo sviluppo in Ruby on Rails, nonché quelli per i quali tecnologie alternative potrebbero essere una scelta migliore. Ecco l’elenco dei progetti web/tipi di applicazioni in cui RoR potrebbe essere considerato un valido candidato per lo stack tecnologico:
Applicazioni web personalizzate : Ruby on Rails può essere utilizzato per creare numerose applicazioni personalizzate, come soluzioni di e-commerce ( Groupon , Fairdeals) , prodotti SaaS ( Basecamp ) o servizi con contenuti come musica, video ( Funny or Die ) o streaming ( Hulu ).
Servizi Web ricchi di funzionalità : se desideriamo creare un’applicazione che aggreghi molte funzionalità diverse, come una piattaforma multi-sided che comprende una piattaforma di comunità, un CMS, forum, geolocalizzazione, blog ( HearingPages ) o una soluzione con una combinazione di: un servizio di notizie, una piattaforma di contenuti multimediali, un CRM e un servizio di comunità ( New Your Jets ), Ruby on Rails offre ampia flessibilità per tenere conto di tutte queste funzioni.
Progetti Web/applicazioni per cui il time to market è critico/il costo del ritardo è elevato: le nuove iniziative che dipendono da un’esecuzione rapida per il successo dovrebbero prendere in considerazione l’utilizzo di Ruby on Rails. Twitter e Groupon vengono in mente come esempi notevoli di iniziative create in RoR.
Prototipazione di applicazioni web : grazie alla velocità e alla flessibilità con cui possono essere sviluppati i progetti RoR, la prototipazione sembra un’opportunità più che naturale. Quando si confronta il tempo necessario per costruire prototipi con strumenti come Axure , Balsamiq Mockups o Protoshare con il tempo necessario per costruire un prototipo RoR, si noterà che, a scapito di un po’ di tempo extra, si è in grado di fornire un modello molto più tangibile con i seguenti vantaggi:
- utilizzo dei dati reali,
- risultati più affidabili nei test di usabilità,
- la possibilità di modificare facilmente il prototipo,
- un’opportunità per eliminare alcuni rischi importanti, ad esempio quelli tecnici, derivanti dall’implementazione del progetto, ecc.
Progetti/applicazioni Web con ambito poco definito/con ambito che probabilmente cambierà durante l’implementazione. Ruby on Rails resisterà se abbiamo bisogno di un’applicazione Web che sia difficile da definire/specificare in anticipo e che quindi probabilmente verrà modificata durante lo sviluppo dell’app. Se dobbiamo creare la soluzione seguendo le linee sostenute da SG Blank e dal Customer Development Framework , è bene considera Ruby on Rails come un’opzione. La flessibilità che deriva dalla tecnologia ci aiuterà molto a tenere conto del feedback dei clienti/utenti e a far passare l’app attraverso le modifiche che potremo incontrare lungo il percorso. RoR abbinato a metodologie Agile si presta naturalmente a creare software “in dialogo con gli utenti previsti”.
TIPI DI APPLICAZIONE MENO ADATTO CON RUBY ON RAILS – Quando non usare Ruby on Rails
Ecco un elenco curato di tipi di applicazioni per cui Ruby on Rails potrebbe non essere la scelta migliore. I tipi di applicazioni che hanno trovato posto nell’elenco possono essere creati con RoR, ma solitamente ci sono tecnologie più adatte per implementare tali progetti. Ecco l’elenco:
Blog
Se vogliamo creare un blog, non dovremmo utilizzare Ruby on Rails poiché ci sono tecnologie più pulite ed economiche che sono state sviluppate specificamente per quello scopo, ad esempio WordPress . È solo quando abbiamo bisogno di una soluzione personalizzata in cui un blog è solo una parte della nostra idea o del progetti che Rails potrebbe essere scelto per affrontare la sfida con questi strumenti .
Sistemi di gestione dei contenuti
Sono simili ai blog. Ci sono molte alternative migliori ed economiche alla creazione di un CMS, ad esempio Joomla! o Drupal . Tuttavia, se intendiamo creare un’applicazione web personalizzata in cui un CMS è solo una delle funzionalità, la comunità Rails ha creato più di venti strumenti per abilitare tale funzionalità all’interno di un’app.
Pagine della brochure
Un sito semplice con informazioni sulla nostra azienda dovrebbe essere costruito con tecnologie più leggere. Se una semplice combinazione di HTML e CSS non è sufficiente a soddisfare le nostre esigenze, diamo uno sguardo ad alcune soluzioni basate su CMS o a semplici generatori di pagine statiche, ad esempio ( Bonsai , MiddleMan , StaticMatic ). Potremmo anche usare Jekyll basato su Ruby .
Applicazioni web semplici e minimaliste
Sebbene sia possibile creare applicazioni a file singolo in Ruby on Rails, consiglieremo altre tecnologie per lo scopo. Un servizio web minimalista e leggero potrebbe trarre vantaggio da Werc , CherryPy o Sinatra , un DSL per creare tali app web in Ruby.
Applicazioni generiche di e-commerce
È meno complesso e meno costoso creare un servizio di e-commerce standard/tipico utilizzando strumenti come Weebly , Etsy o Shopify. Di nuovo, se vogliamo personalizzare la soluzione di e-commerce per le nostre esigenze molto specifiche o se il modulo di e-commerce è solo una delle tante funzionalità che dobbiamo implementare nella nostra soluzione, Spree o altre soluzioni di e-marketplace Ruby on Rails potrebbero essere prese in considerazione.
Applicazioni finanziarie altamente sicure
Le transazioni finanziarie spesso si basano su procedure memorizzate nell’ambiente software e nei database che sono indipendenti dall’interfaccia web. Ruby on Rails è ottimizzato per semplici operazioni CRUD piuttosto che per l’applicazione di complesse regole transazionali. Pertanto, RoR potrebbe non essere lo strumento giusto per il lavoro. Lo sviluppo di Rails guidato dalla community potrebbe anche essere una ragione per cui Ruby on Rails è raramente utilizzato per lo sviluppo di applicazioni finanziarie. Java o .Net sono supportati da grandi aziende come Oracle e Microsoft rispettivamente. Non esiste una grande istituzione che supporti Rails in modo simile.
L’elenco sopra riportato non è certamente esaustivo. Ci sono sicuramente altre soluzioni di sviluppo software che potrebbero essere migliori se implementate con stack tecnologici non RoR.
CONCLUSIONE
Ci auguriamo che la discussione sui punti di forza e di debolezza di Ruby on Rails, nonché sui progetti/applicazioni web che si prestano allo sviluppo in RoR, offra qualche spunto sul perché RoR si sia guadagnato la fiducia di alcuni sviluppatori di soluzioni software . Dovrebbe gettare un po’ di luce sui motivi per cui alcuni imprenditori ed organizzazioni aziendali hanno scelto Ruby on Rails per creare oltre 235.000 applicazioni web dal 2004 circa.
Tuttavia, cosa più importante, è che l’articolo aiuti a decidere se l’applicazione che vogliamo creare può trarre vantaggio da Ruby on Rails. Tuttavia, come ogni tecnologia, Ruby on Rails non è una panacea: assicuriamoci che non ci siano alternative migliori da usare nel nostro progetto specifico.
Per altri articoli tecnici potete visionare il nostro blog al seguente LINK.
(fonte)
Innovaformazione, scuola informatica specialistica promuove lo sviluppo software consapevole e professionale. La scelta di un framework e libreria rispetto ad un altro va sempre ponderato in base al tipo di progetto che si va a realizzare.
L’offerta formativa per sviluppatori include il Corso Ruby on Rails rivolto solo alle aziende.
INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)
Articoli correlati
Claude Code e Migrazioni SAP
Claude Code controllo remoto
Opportunità Carriera Contabilità SAP
Guida SIA AI
Guida Dual LLM Verification
