Model vista controlador per dummies.
El desenvolupament de pàgines web ha canviat molt en els darrers anys. Fins i tot per a webs que avui considerem senzilles a l'hora de navegar-hi, no ho son a nivell funcional.Les pàgines web, inicialment eren estàtiques. Un contingut formatat per visualitzar-se en un navegador i ja està.
Posteriorment s'han anat incorporant més elements dins d'aquesta pàgina web inicial. Gestió de dades, pàgines on el contingut canvia depenen de diferents situacions, etc.
Tots aquets canvis han impactat en el desenvolupament de pàgines web. Anys enrere es parlava de fer pàgines web amb eines Wysiwyg (What you see is what you get ) Eren eines de generació de pàgines web que permetien dissenyar la presentació del contingut d'aquesta per tal que es poguessin visualitzar en un navegador de manera senzilla. A dia d'avui qui desenvolupa pàgines web, o té una edat i bona memòria, o no sap ni què vol dir Wysiwyg. Les webs ja no són això, aquesta metodologia no funciona.
Les webs actuals tenen gestió d'accessos, bases de dades, generació de contingut dinàmic en funció de determinats paràmetres, salts entre diferents pàgines, salts condicionals entre diferents pàgines, i un llarg etcètera de funcionalitats diverses.
Això ha fet que en l'actualitat el desenvolupament de pàgines web ja no es realitza usant eines de disseny de contingut, sinó en eines de programació que segueixen un model MVC ( Model, View, Controller )
Els models MVC, són conjunts de codi que permeten controlar totes les opcions que es requereixen en una web actual. Per tenir una idea més o menys bàsica del que representa aquest model anem a veure cadascuna de les parts que el componen:
Model. Aquesta part és la que defineix tot el conjunt de dades que mourà el lloc web. Un lloc web pot tenir un procés d'autenticació, un procés de compra, un procés de qüestionaris, etc. Cadascun d'aquests processos té unes dades associades que cal gestionar i normalment emmagatzemar a la base de dades.
La definició de les dades, de com s'emmagatzemen és el que s'anomena model.
Vista. Les vistes són les definicions de les pàgines web que visualitzarà l'usuari al navegar pel lloc web. Les vistes vindrien a ser les pàgines web que es dissenyaven abans amb eines Wyswing, però ara a més a més són dinàmiques. Les vistes estan condicionades per un munt de factors. Per exemple si ens trobem en un qüestionari de qualificació i l'usuari tria l'opció correcta la següent pàgina que veurà l'usuari serà una pàgina indicant-li que s'ha equivocat. En cas que respongui correctament la pàgina serà de felicitacions per la resposta correcta. Això són dues pàgines diferents que representaran dues vistes diferents. A més a més aquestes vistes seran dinàmiques, doncs apareixerà el nom de l'usuari en elles, cada usuari tindrà una pàgina personalitzada de cadascun dels tipus.
Controlador. Els controladors, són el nucli de qualsevol lloc web. És el codi que determina que passa en cadascun dels moments a la web. Quan l'usuari clica un botó, quan contesta un qüestionari, quan fa un login. Tots els processos es gestionen per controladors que s'encarreguen de gestionar les dades que es mouen ( i que estan definides en el model ) i les pantalles que es presenten als usuaris ( definides a les vistes ). Els controladors gestionen en cadascun dels moments que visualitza l'usuari en funció de les regles que tenen definides.
D'aquesta manera amb aquests tres conceptes es poden crear les webs actuals. Per una banda dades, per altra banda pàgines que veu l'usuari i uns controladors que ho lliguen tot.
El problema d'aquest model és que les pàgines no són independents. Tot està relacionat. No estem fent 20 pàgines web que s'agrupen en un lloc web. Estem fent un lloc web que té 20 pàgines, que estan formades per diferents elements de dades, de vistes i de controladors per gestionar la interacció entre aquestes 20 pàgines.
Amb aquest nou concepte, el canvi senzill sobre una pàgina web de qualsevol lloc web, no té perquè ser senzill. Només ho serà si aquest canvi només modifica la vista ( el contingut ) sense tenir impacte en cap dels altres elements. En cas que toqui més d'un element el canvi ja no és trivial.
Un altre exemple senzill. Tenim un formulari en una pàgina. El formulari té 4 camps que es registren a la base de dades.
Canviar el nom dels camps, enlloc de dir "nom" digui "Nom:" és un canvi de contingut que no afecta a cap altre element. És un canvi senzill.
Afegir un nou camp al formulari, ja no és un canvi senzill. Un nou camp al formulari implica un canvi en el model de les dades, en el controlador que gestiona aquest formulari ( què farà amb el nou camp, quines condicions ha de complir les dades d'aquest camp, ...) i un canvi a la vista, doncs ha d'aparèixer el no camp a la pàgina web.
Eliminar un dels 4 camps existents implicaria exactament el mateix que afegir-lo, no és tampoc un canvi senzill. En aquest cas però s'acaba solucionant d'una manera més pragmàtica. Es pot amagar el camp de la vista i assignar-li un valor per defecte. Aquest valor per defecte es el que s'usarà per al controlador i el model com si s'hagués introduït per l'usuari. D'aquesta manera no caldrà canviar tot el paquet i es pot aconseguir un canvi senzill d'un que no ho seria. No és una pràctica neta, però és efectiva.
Així doncs en l'actualitzat els llocs web no tenen, generalment, canvis senzills, doncs fins i tot els petits canvis poden tenir un impacte elevant en el conjunt del lloc. Avui en dia la sofisticació en els llocs web ha donat lloc a un grau de complexitat elevat que fa que els canvis no siguin trivials.
Imatge del post de : http://pixabay.com/
Comentaris
Publica un comentari a l'entrada