Rails Best Practices: introduzione

Ho deciso di dedicare una serie di post alle Best Practices in Rails perché ritengo sia importante diffonderle e condividerle al fine di migliorare sempre il proprio modo di programmare.

La scrittura di questi post sarà anche un occasione per me di approfondire meglio le mie conoscenze, per cui vi invito fin da ora a seguirmi in questo percorso e a contribuire con i vostri commenti.

Questo primo post è solo un introduzione in cui voglio mettere in evidenza i vantaggi dello scrivere applicazioni Ruby On Rails seguendo le regole di best practices. Nei post che seguiranno cercherò di approfondire i concetti base per scrivere codice migliore e più gestibile attraverso degli esempi concreti.

Ma vediamo ora in sintesi i principali vantaggi derivanti dal seguire le best practices:

  • Leggibilità: un codice più leggibile e più chiaro è utile soprattutto in progetti in cui sono coinvolti più sviluppatori ma anche su progetti individuali. Vi è mai capitato di riprendere in mano del codice che avete scritto a distanza di qualche mese? Era abbastanza chiaro e leggibile?
  • Flessibilità: del codice ben scritto è generalmente più modulare, quindi più facile da adattare a nuovi requisiti o richieste di modifiche da parte del cliente. Ma rende anche più facile riutilizzare su nuovi progetti funzionalità e blocchi di codice già implementati in passato;
  • Manutenibilità: un codice modulare e che segua la filosofia DRY è più semplice da correggere ed anche da comprendere.
  • Testabilità: scrivere codice secondo le best practices rende più semplice, come vedremo nei prossimi post, il flusso di operazioni eseguite nei controller. In tal modo anche la scrittura dei metodi di test risulterà più semplice e più efficace.

Nel prossimo post inizieremo a vedere come spostare parti di codice dal Controller al Model, secondo la pratica che nel mondo rails viene detta “Fat Model – Skinny Controller“.

Gli argomenti dei post successivi saranno invece:

  • Convenzioni REST
  • Ottimizzazione del Model
  • Scomposizione del Model
  • Best Practices per le Migration
  • Utilizzo dei filtri nei Controller
  • Rimuovere la logica dalle view RESTful Conventions
  • Utilizzare gli helper Model Optimization