A continuación se realizara un pequeño resumen de las bondades en la implementación de la arquitectura MVC según mi experiencia, para explicar y ejemplificar ciertos aspectos en que consiste, será basado en un desarrollo de aplicaciones WEB con el lenguaje de programación PHP.

A medida que los desarrollos de software van creciendo, se hacen complejos por varios motivos; sean por la gran diversidad de tecnologías implementadas, larga vida del proyecto, los diversos aspectos que involucran el mantenimiento, y principalmente por su crecimiento en los cambios de los requerimientos, con todo esto surgió la necesidad de agilizar inteligentemente esta actividad con un mecanismo practico y robusto que pueda perdurar en el tiempo, sin generar un trauma al personal encargado.

El éxito de todo sistema se debe a uno de los aspectos mas importantes, que es la correcta implementación de una arquitectura de desarrollo, que permita una fácil y flexible expansión de sus requerimientos. Por ello surgió la arquitectura Modelo Vista Controlador (MVC), está trata de separar los componentes más esenciales de un software en tres capas.

Cada capa tiene un comportamiento único, donde se trata de aislar un segmento de código semejante, con el fin de puntualizar las actividades y hacer todo mas sencillo para los programadores, entre cada una de ellas existe un orden lógico de comunicación. La arquitectura de una aplicación se define en tres grandes capas:

  • Modelo: Contiene todas las consultas relacionadas a la Base de datos, solo suministra o recibe información directamente del Controlador o del Manejador de Base de Datos, representa toda la estructura de datos, no tiene noción de la existencia de la Vista.
  • Vista: Maneja todos los aspectos desde el punto de vista de interfaz de usuario, en poca palabras la salida y captura de información, interactua directamente con el Controlador. En esta capa se utiliza una diversidad de lenguajes como el XML, HTML, CSS, JavaScript y un minimo de PHP, lo esencial para imprimir contenido.
  • Controlador: Contiene toda la lógica de negocio, se convierte en un intermediario entre el Modelo y la Vista. Se involucra todo proceso que analiza la información para un determinado fin, por ejemplo: Validaciones, Condiciones, Generación de reportes, Prepara el contenido a mostrar en la Vista, etc…

Cuando se implementa la Programación Orientada a Objetos y esta arquitectura, se representar cada capa como una clase.

Las bondades que ofrece son varias:

  • Evita la inclusión de diversos tipos de códigos en un solo sitio, los separa según su lógica para facilitar el mantenimiento, por lo que se denomina aislamiento, de esta forma los cambios no son tan agresivos.
  • Incrementa la reutilización del código.
  • Promueve el desarrollo en equipo centrado en capas.
  • Incrementa la seguridad de la aplicación, siempre y cuando se validan los datos en cada capa.

En lo personal, este modelo simplifica mucho el trabajo diario, al principio puede costar un poco en entender exactamente toda la visión, pero es tan simple que uno se complica solo, en la practica se ira entendiendo cada vez mas sus bondades, la mejor forma de implementarlo es con el uso de un Framework.

Un framework de desarrollo que contemple esta arquitectura de forma nativa es Zend Framework, pero este es mi caso y lo recomiendo mucho. En el mercado existe muchos otros que lo implementan, situación que no está de mas investigar.

El uso de esta arquitectura y el apoyo del framework no es el todo para lograr con éxito el desarrollo de un sistema, pero abarca un gran porcentaje, no hay que desanimarse, la experiencia y la persistencia es la mejor herramienta.