27 ottobre 2015

Vantaggi del pattern MVC

I vantaggi apportati dal pattern MVC sono molteplici e riguardano soprattutto la riusabilità del codice. La parte del model racchiude le risorse dell’applicazione web, e protegge il resto dell’applicazione da eventuali cambiamenti. La view include solo la parte della presentazione del sito permettendo di cambiare il look and feel del sito agendo solo su di essa. La parte del controller racchiude invece la business-logic e quindi regole legate alla visualizzazione delle informazioni e alla memorizzazione dei dati. È grazie a questa separazione di compiti proposta dall'approccio MVC che si favorisce il riuso del codice grazie a soluzioni già pronte ai problemi comuni, un aumento della produttività, oltre a facilitare la manutenzione del software, la sua scalabilità, uniformità e standard. 

Nello specifico i vantaggi sono i seguenti:
  • L’indipendenza delle varie componenti permette la suddivisione del lavoro nel caso ci debbano lavorare più persone (o gruppi di persone) con competenze diverse.
  • Esiste la possibilità di scrivere viste e controllori diversi, utilizzando lo stesso modello di accesso ai dati e quindi, come già accennato, riutilizzare parte del codice già steso in precedenza. Infatti, la separazione di model e view permette a molte view di usare gli stessi oggetti del modello.
  • È di facile supporto per nuovi tipi di client poiché è sufficiente scrivere nuove view e alcuni controller e utilizzare i soliti oggetti del model.
  • L’utilizzo di un modello rigido e di regole standard nella stesura del progetto facilita un eventuale lavoro di manutenzione e si agevola la comprensione anche da parte di altri programmatori.
  • Si ha maggiore flessibilità perché nel caso si cambi tipo di database, sarà possibile adattare l’applicazione senza dover modificare tutto il codice, ma solo il modello.
  • La possibilità di avere un controllore separato dal resto dell’applicazione, rende la progettazione più semplice e permette di concentrare gli sforzi sulla logica del funzionamento.


C’è da dire che i framework sono molti e le scelte a disposizione sono numerose. Nella scelta dell’ambiente di sviluppo da utilizzare si consideri che non esista il framework migliore o peggiore in assoluto, ma esiste il framework più adeguato alle proprie esigenze. Tra quelli che utilizzano il pattern di sviluppo MVC, ricordiamo: CakePHP, CodeIgniter, DooPHP, Akelos.

19 ottobre 2015

Controller

Il controller è il componente tramite il quale l’utente interagisce con l’applicazione. Riceve i comandi dall'utente (attraverso la view), li interpreta e si occupa dell’eventuale elaborazione del passaggio al modello ed eventualmente di nuovo della risposta alla view per eseguire le opportune variazioni, serve pertanto a modificare lo stato degli altri due componenti. Il controller, quindi, da un lato raggruppa azioni che possono essere compiute sul modello e dall'altro lato gestisce eventi causati dall'utente.


beruby - Rimborsi per i tuoi acquisti e prenotazioni in Internet

17 ottobre 2015

View

La view è responsabile della visualizzazione dei dati contenuti nel modello con una certa formattazione e dell’interazione con l’utente. Ogni modifica al modello cui fa riferimento la vista comporta l’aggiornamento della vista stessa in modo che l’utente visualizzi sempre dati aggiornati. Un modello può avere più viste associate e ognuna di esse può visualizzare i dati del modello utilizzando rappresentazioni diverse in base al contesto. Nel prossimo post vedremo le funzionalità del controller.


16 ottobre 2015

Model

Come promesso in questo post vi spiegherò in dettaglio una componente del design pattern MVC: il model!
Il Model si occupa della gestione dei dati e quindi dell’interazione con il database. Definisce i dati e le operazioni che possono essere eseguiti su essi e fornisce funzioni per l’accesso e l’aggiornamento. Può avere inoltre la responsabilità di notificare ai componenti della view eventuali aggiornamenti verificatosi in seguito a richieste del controller, al fine di permettere alla view di presentare agli occhi dell’utente dati sempre aggiornati.Un modello si occupa anche di controllare la validità dei dati assegnati e la correttezza dell’ordine delle operazioni effettuate sul modello stesso. Ogni singolo modello contiene solo i dati e le funzionalità relative ad un concetto comune, quindi nel caso in cui i dati rappresentino informazioni differenti, saranno rappresentati da modelli diversi. Ulteriori informazioni le troverete cliccando su questo link dove troverete utili grafici. Alla prossima con il post sulla View.


8 ottobre 2015

Model View Controller


Oggi descriviamo un design pattern, il modello MVC (acronimo di Model-View-Controller). Un pattern architetturale, che descrive lo schema organizzativo della struttura che caratterizza un sistema software. Esso individua le parti del sistema cui associare responsabilità omogenee e le relazioni esistenti tra queste diverse parti. Il pattern MVC è stato introdotto nel 1979 dal professore Trygve M.H. Reenskaug ed è stato originariamente impiegato dal linguaggio di programmazione orientato agli oggetti Smalltalk, e in seguito utilizzato da molte tecnologie, tra cui i Framework basati sul linguaggio di scripting PHP. In altre parole è un metodo su come dividere le applicazioni in tre parti idealmente indipendenti che sono il controller, il model e la view. Queste tre componenti MVC si occupano ognuna di un compito diverso in modo da dividere rispettivamente il controllo dell’applicazione, la struttura dati e la visualizzazione, separando in questo modo la logica applicativa a carico del controller e del model dall'interfaccia utente a carico della view, ma sono strettamente correlati tra di loro in quanto ogni modifica al modello deve essere invocata dal controller e deve notificare la vista in modo tale che l’applicazione funzioni in modo corretto. Solitamente, nel campo dello sviluppo web, le azioni che un utente può intraprendere si possono riassumere nella richiesta di un URL al quale possono essere inviati opzionalmente dei dati. Il controller è uno script associato a un URL e quindi a una determinata azione che carica i modelli appropriati e passa il risultato sulla vista corretta. Una vista non è altro che un template che visualizza i dati ricevuti dal controller dopo un’eventuale elaborazione da parte dei modelli. Un modello infine non è altro che una sorgente di dati ottenuti da un file di testo oppure da una tabella SQL e al quale sono associati una serie di script per manipolare gli stessi dati. Nel successivo post descriveremo meglio i compiti di questi tre oggetti!

Model View Controller



4 ottobre 2015

Design Pattern

Un design pattern è una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software. Esso è una soluzione progettuale generale a un problema ricorrente che permette quindi il riuso di buona parte del lavoro, svolto nell'ambito di un progetto, all'interno di un’altro. In particolare usare un pattern significa utilizzare un’idea che è stata già dimostrata. Alla base di un design pattern c’è il concetto di riuso che permette di risparmiare lavoro riutilizzando parte di quello che è già stato svolto da altri. Quindi il riuso permette di utilizzare componenti esistenti senza il bisogno di doverle sviluppare dall'inizio. Inoltre è ridotta la parte di testing e di manutenzione risparmiando denaro poiché altri hanno risolto il problema in passato. Riducendo i tempi di sviluppo si possono sfruttare subito nuove opportunità di mercato aumentando i profitti. Questo concetto è stato introdotto da Christopher Alexander descrivendo un suo primo pattern Cottage per teenager che descrive come un’architettura può aiutare una famiglia con un figlio adolescente. 

Un pattern è costituito da un nome, dalla descrizione del problema al quale applicare il pattern, da una soluzione che rappresenta il problema come astratto e il modo con cui risolverlo, infine da conseguenze che racchiudono i risultati e i vincoli derivati dall'applicazione del pattern. I pattern possono essere classificati in pattern creazionali, strutturali e comportamentali. Ci sono tipi di pattern che non operano a livello di design del sistema, quindi non possono essere definiti propriamente design pattern e sono quelli architetturali. Essi descrivono uno schema di base per determinare l’organizzazione strutturale di un’applicazione software. Tra i tanti pattern architetturali c'è il Model-View-Controller di cui parleremo nel prossimo articolo.