domingo, 8 de septiembre de 2013

Buenas prácticas para MVC (Modelo-Vista-Controlador)

Bueno, si bien todos conocen el concepto de MVC (Modelo-Vista-Controlador), me pareció pertinente dar una lista de buenas prácticas para el desarrollo de aplicaciones MVC pues en las pasadas semanas conocí a un gran número de personas que malinterpretaban este concepto.
Entonces, los puntos a tener en cuenta cuando se desarrolla una aplicación MVC:

Los modelos deben representar la estructura de datos de la aplicación Web. Así pues los modelos deberían contener:
  • Propiedades para representar datos específicos.
  • Lógica del negocio que nos permita asegurar que los datos representados cumplen los requisitos del diseño.
  • Adicionalmente, podría contener código para realizar la manipulación de los datos. 
  • En general los modelos no deberían contener lógica que trata directamente con el usuario final. Más específicamente, los modelos no deberían contener:
    • Ningún tipo de acceso a variables con datos del usuario final.
    • Código HTML o cualquier tipo de lógica de presentación (pues esto debería ser realizado en las vistas)
Las vistas son las encargadas de presentar los modelos en el formato que el usuario requiera. Algunas características importantes a tomar en cuenta son:
  • La mayor parte del contenido será HTML, pudiendo contener partes de php, javascript o css.
  • Puede acceder a datos de los controladores y modelos de manera directa pero debería ser solamente con propósitos de presentación.
  • Se debe evitar el acceso a variables que representan alguna petición del usuario.
  • Se debe evitar cualquier código que realice alguna consulta a la Base de Datos.
Los controladores son la "unión" entre las vistas, los modelos y cualquier otro componente. Son el componente que debe "comprender" las peticiones que realiza el usuario. Entonces:
  • Pueden lidiar con variables de pedido de los usuarios (de llamadas ajax por ejemplo).
  • Pueden instanciar los modelos.
  • Se debe evitar el uso de peticiones SQL pues estas peticiones van en los modelos.
  • Se debe evitar el uso de HTML pues es mejor mantener este código en las vistas.
Una característica importante en aplicaciones MVC es que los controladores usualmente solo tienen una pequeña cantidad de código, siendo los modelos los que acumulas la mayor "carga" de la aplicación.

No hay comentarios:

Publicar un comentario