Il
secondo buon motivo per utilizzare
Rails riguarda la netta separazione tra il codice, che determina il funzionamento del programma, e quello che riguarda invece la presentazione delle informazioni, laddove le applicazioni ASP o PHP possono mischiare HTML e
business logic, rendendo così difficoltosa la manutenzione del codice, ma in qualche caso anche la realizzazione dell'interfaccia stessa.
Questo inconveniente si risolve grazie all'uso del
pattern MVC, che suddivide l'applicazione in tre livelli:
Model o modello, che include la cosiddetta
businness logic,
View o vista, che ha a che fare con la rappresentazione delle informazioni, e il
Controller che si occupa di mediare le interazioni tra gli altri due.
Si potrebbe riassumere il funzionamento di questo paradigma dicendo che
il nucleo dell'applicazione si trova nel Model, in cui sono definiti i dati e le operazioni che si possono eseguire su questi, ovvero le regole di business per interagire con i dati, lasciando agli altri moduli i compiti di accesso e aggiornamento. D'altra parte
nel Model ci possono essere anche notifiche ai componenti della View riguardanti aggiornamenti verificatisi nei dati in seguito a operazioni effettuate attraverso il
Controller, dal momento che la rappresentazione esterna dev'essere sempre aggiornata.
L'interfaccia grafica è gestita in esclusiva dalla View, che consente l'interazione tra utente e sistema e si serve di strategie push o pull per mantenere costantemente aggiornati i dati stessi.
Il Controller infine si può considerare un intermediario fra gli altri due componenti, poiché trasforma in azioni del
Model le interazioni effettuate dall'utente attraverso la
View. Si tratta di un ruolo piuttosto complesso, che richiede di implementare la logica di controllo dell'applicazione, e non solo di effettuare una semplice traduzione.
In estrema sintesi, il
pattern MVC permette di avere codice pulito, strutturato, flessibile e molto facile da mentenere; c'è poi il vantaggio collaterale di presentarsi come un metodo di lavoro che si conosce sempre meglio utilizzandolo, e al tempo stesso aiuta a organizzare il lavoro, poiché serve come riferimento in situazioni sempre diverse. Naturalmente non è detto che questo paradigma sia il migliore per tutti, e non si tratta di un'
esclusiva di
Rails, dal momento che si trovano diverse implementazioni in svariati linguaggi, da
.NET a
Java/Spring, ma si tratta comunque di un buon motivo; per una comprensione, diciamo così,
lato Java, segnalo un vecchio
tutorial piuttosto sintetico e al tempo stesso efficace.