Le 15 migliori gemme per web applications ruby on rails

By | 2 dicembre 2013

In questo post vorrei condividere lo stack tecnologico che utilizziamo in DevInterface per realizzare web applications in Ruby on Rails.

A mio avviso, le gemme che indicherò nel seguito dell’articolo rappresentano le migliori opzioni per adottare un modello si sviluppo Agile, DRY e per realizzare soluzioni complesse nel minor tempo possibile.

Queste gemme rappresentano il “core” di ogni nostro Gemfile perchè permettono di risolvere le più comuni problematiche che si affacciano in ogni applicazione. A corredo di queste gemme, innumerevoli altre permettono di implementare funzioni social, l’audit dei modelli, l’integrazione con API esterne e tanto altro ancora.

Devise (https://rubygems.org/gems/devise): Da anni ormai rappresenta il meccanismo di autenticazione preferito da tutti gli sviluppatori Rails. Potente, flessibile, permette con minimo sforzo di integrarsi con sistemi di autenticazione OAuth.

Haml (https://rubygems.org/gems/haml): Permette di scrivere XHTML valido in modo conciso. La curva di apprendimento è relativamente breve. L’unico problema è farlo imparare al proprio grafico!

Gritter (https://rubygems.org/gems/gritter): Dopo anni di messaggi flash nel classico div in pagina, ci siamo spostati su notifiche tipo Growl. Grazie a queste popup, possiamo far comparire in qualsiasi pagina i nostri messaggi flash in modo assolutamente non invasivo ed elegante.

Cells (https://rubygems.org/gems/cells): Grazie a Cells possiamo mantenere realmente i controller molto skinny, delegando a questa gemma il compito di rappresentare gli innumerevoli box di contenuti presenti nella pagina. Lo usiamo per rappresentare e cacheare box tipo “articoli suggeriti”, classifica utenti ecc. Lo preferiamo di gran lunga all’utilizzo degli helpers.

FriendlyId (https://rubygems.org/gems/friendly_id): Ottima gemma per rendere le nostre url seo friendly.

SimpleForm (https://rubygems.org/gems/simple_form): La usiamo soprattutto per l’ottima integrazione con Bootstrap e per la sua semplicità di utilizzo.

Paperclip (https://rubygems.org/gems/paperclip): Nonostante gli anni, rimane per noi sempre il punto di riferimento per la gestione di attachment.

Kaminari (https://rubygems.org/gems/kaminari): Utile gemma per gestire collezioni paginate.

Cancan (https://rubygems.org/gems/cancan): La gemma di riferimento per gestire le autorizzazioni. In tanti progetti anche molto complessi non abbiamo mai avuto la necessità di utilizzare qualche altra soluzione.

Resque (https://rubygems.org/gems/resque) o DelayedJob (https://rubygems.org/gems/delayed_job): Entrambi rappresentano validi supporti per gestire i processi in background. Se non si hanno abbastanza risorse per mettere in piedi un server Redis, consigliamo DelayedJob.

Sunspot (https://rubygems.org/gems/sunspot): Dopo un breve periodo con thinking_sphinx, siamo passati a questo potentissimo motore di indicizzazione. Grazie a Solr possiamo implementare agevolmente ricerche fulltext geolocalizzate. L’unico problema è che è necessario configurare un apposito server Tomcat. Se non si hanno queste risorse, consigliamo di usare pg_search (https://rubygems.org/gems/pg_search) con un database Postgres oppure il vecchio ma ancora valido meta_search (http://rubygems.org/gems/meta_search).

ActiveAdmin (https://rubygems.org/gems/activeadmin): Quando è necessario mettere in piedi un backoffice amministrativo in breve tempo, ecco la gemma che fa al caso nostro. E’ potente, abbastanza customizzabile, l’ideale per interfacce di amministrazione senza troppe pretese.

Letter Opener (https://rubygems.org/gems/letter_opener): Gemma utilissima per testare l’invio di email e notifiche varie, aprendole semplicemente in una finestra del browser.

RSpec (https://rubygems.org/gems/rspec):  Ottima gemma per testare in modo BDD i nostri model.

Capybara (https://rubygems.org/gems/capybara): Oltre agli unit test dei model, ci piace creare una suite di acceptance test sull’interfaccia. Capybara permette di testare tutte le user stories dell’applicazione in modo relativamente veloce.

Quali gemme non possono mancare nel vostro stack Ruby on Rails?

10 thoughts on “Le 15 migliori gemme per web applications ruby on rails

  1. Simon

    Hi thank you for this listing, I discovered Gritter, very cool.

    I would propose some alternatives though, for the record.

    Haml -> Slim which is cleaner (IMHO) and often faster

    Resque -> Sidekiq which handles brillantly heavy worker-based architectures

    It may not be the “best” in term of people using it but that doesn’t mean their not the “best” for the job :)

    Thank you again!

  2. Joel Cogen

    We have recently switched from CanCan to Pundit, and really love the approach. It helps avoiding a huge and cluttered Ability class.
    Moreover, CanCan is not really maintained anymore.

    +1 for Slim too!

  3. nanos

    Thank you for the article!
    Please fix the SimpleForm link.

  4. Michele

    Most gems require rails <4 (example cancan), an alternative to use rails 4 (not only cancan)?

  5. Pingback: Le 15 migliori gemme per web applications ruby on rails - JOBS REVOLUTION

Comments are closed.