Programmare il Web seguendo MVC

domenica, marzo 9, 2008 14:05 scritto da neryo

Programmare il Web seguendo MVC

Qualcuno di voi appena ha letto l’acronimo MVC si sará subito posto qualche domanda… alcuni non l’avranno nemmeno sentito nominare… MVC stá per Model View Controller in italiano Modello-Vista-Controllore é un design pattern architetturale three tier, originariamente impiegato nel linguaggio smalltalk, (ora portato in tutti i linguaggi ad oggetti), ovvero un metodo su come strutturare le applicazioni in tre parti utilizzando la programmazione ad oggetti.

Il compito di questa strutturazione é quello di rendere indipendenti, disaccoppiando le parti software tra loro, adibite al controllo, all’accesso ai dati e alle viste di presentazione degli stessi.
Il pattern é basato quindi sulla separazione dei compiti fra le classi che interpretano tre ruoli principali:

  • Il modello gestisce i dati e fornisce i metodi per accedervi in modo astratto e consistente, solitamente la progettazione del modello è guidata sostanzialmente dalla struttura del database e quindi sostanzialmente dalle modalità di accesso ad esso;
  • La vista si incarica di visualizzare i dati o un porzione di essi, forniti dal controllore attraverso un opportuno modello, in base ad una specifica formattazione rappresentante un certo contesto applicativo, che potrá essere un lista di record, una form per l’inserimento e la modifica, un grafico, o qualsiasi rappresentazione si vuole dare a questi dati;
  • Il controllore é il “motore” dell’applicazione, riceve i comandi dall’utente, generalmente attraverso la vista utilizzando i propri metodi e li utilizza per richiamare in modo adeguato gli altri due componenti, permettendo quindi al modello di estrarre i dati, che vengono passati per la visualizzazione alle opportune viste. In pratica il controllere si occupa di rimappare le azioni effettuate dall’utente alle risposte dell’applicazione, che lavoreranno sui modelli e le viste in modo adeguato.

MVC Modello Vista Controllore

Questo approccio ha numerevoli vantaggi:

  • Indipendenza giá citata delle varie componenti, che permette di lavorare separatamente in team (con competenze diverse) alle parti software astraendone al meglio il funzionamento.
  • Possibilitá di scrivere viste e controllori diversi utilizzando lo stesso modello di acceso ai dati e quindi riutilizzare parte del lavoro giá fatto.
  • Avere il controllore separato dal resto dell’applicazione rende la sua progettazione piú semplice permettendo di concentrare gli sforzi sulla logica del funzionamento.
  • Obbliga gli sviluppatori a rispettare uno standard nella stesura del progetto, che ne facilita poi la comprensione e le successive implementazioni, soprattutto utilizzabile in progetti di medie/grandi dimensioni.
  • Software più flessibile, mantenibile ed aggiornabile nel tempo.

Ha anche alcuni svantaggi:

  • Adatto soprattutto a progetti medio/grandi.
  • Architettura sostanzialmente complessa.
  • Flessibilitá dipendente dal framework utilizzato.

Per iniziare ad addentrarsi in questo metodo, esistono tantissimi framework open-source per utilizzare il pattern di sviluppo MVC, come potete vedere da questa lista. Alcuni di essi sono piuttosto famosi come Zend Framework, CodeIgniter, Kohana Php, CakePhp, Symfony, PHPMVC ecc.. e sicuramente alcuni di voi li hanno utilizzati o almeno sentiti nominare.

Il piú é riuscire a capire quale framework MVC sia il piu’ adatto per ridurre e migliorare il nostro lavoro e rendere le nostre applicazoni piú snelle e ben organizzate, facilitandone in futuro il mantenimento e le aggiunte di funzionalitá.

Sicuramente nessuno puó sapere a priori quale sia il migliore per il vostro utilizzo, é una scelta abbastanza soggettiva, a parte che deve ricadere sui framework che supportano PHP5.. Ognuno di noi deve capire le sue necessitá e provarli sulla propria pelle o meglio sui propri progetti e magari poi portare le proprie esperienze su questo blog!

;)

Riferimenti e spunti:
http://it.wikipedia.org/
http://www.phpday.it

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (4 voti, media: 4,00 di 5)
Loading ... Loading ...

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free