Introducción al marco MVC

En los últimos años, los sitios web han pasado de simples páginas HTML con un poco de CSS a aplicaciones increíblemente complejas con miles de desarrolladores trabajando en ellas al mismo tiempo. Para trabajar con estas aplicaciones web complejas, los desarrolladores usan diferentes patrones de diseño para diseñar sus proyectos, para hacer que el código sea menos complejo y más fácil de trabajar. El más popular de estos patrones es MVC, también conocido como Model View Controller.

El marco Modelo-Vista-Controlador (MVC) es un patrón arquitectónico/de diseño que separa una aplicación en tres componentes lógicos principales Modelo , Vista y Controlador . Cada componente arquitectónico está construido para manejar aspectos de desarrollo específicos de una aplicación. Aísla la lógica empresarial y la capa de presentación entre sí. Se usaba tradicionalmente para interfaces gráficas de usuario (GUI) de escritorio . Hoy en día, MVC es uno de los marcos de desarrollo web estándar de la industria más utilizados para crear proyectos escalables y extensibles. También se utiliza para diseñar aplicaciones móviles.

MVC fue creado por Trygve Reenskaug . El objetivo principal de este patrón de diseño era resolver el problema de los usuarios que controlan un conjunto de datos grande y complejo al dividir una aplicación grande en secciones específicas que tienen su propio propósito.

Características de MVC:

  • Proporciona una clara separación de la lógica comercial, la lógica Ul y la lógica de entrada.
  • Ofrece control total sobre su HTML y URL, lo que facilita el diseño de la arquitectura de aplicaciones web.
  • Es un poderoso componente de mapeo de URL con el que podemos crear aplicaciones que tienen URL comprensibles y buscables.
  • Es compatible con el desarrollo dirigido por pruebas (TDD).

Componentes de MVC:

El marco MVC incluye los siguientes 3 componentes:

  • Controlador
  • Modelo
  • Vista

Diseño de arquitectura MVC

Controlador:

El controlador es el componente que permite la interconexión entre las vistas y el modelo por lo que actúa como intermediario. El controlador no tiene que preocuparse por manejar la lógica de datos, simplemente le dice al modelo qué hacer. Procesa toda la lógica empresarial y las requests entrantes, manipula los datos mediante el componente Modelo e interactúa con la Vista para generar el resultado final.

Vista:

El componente Ver se utiliza para toda la lógica de la interfaz de usuario de la aplicación. Genera una interfaz de usuario para el usuario. Las vistas son creadas por los datos recopilados por el componente del modelo, pero estos datos no se toman directamente sino a través del controlador. Solo interactúa con el compilador.

Modelo:

El componente Modelo corresponde a toda la lógica relacionada con los datos con la que trabaja el usuario. Esto puede representar los datos que se transfieren entre los componentes View y Controller o cualquier otro dato relacionado con la lógica empresarial. Puede agregar o recuperar datos de la base de datos. Responde a la solicitud del controlador porque el controlador no puede interactuar con la base de datos por sí mismo. El modelo interactúa con la base de datos y devuelve los datos requeridos al controlador.

Comprendamos el funcionamiento del marco MVC con un ejemplo:

Imaginemos que un usuario final envía una solicitud a un servidor para obtener una lista de los estudiantes que estudian en una clase. Luego, el servidor enviaría esa solicitud a ese controlador en particular que maneja a los estudiantes. Ese controlador luego solicitaría al modelo que maneja a los estudiantes que devuelva una lista de todos los estudiantes que estudian en una clase.

El flujo de datos en componentes MVC

El modelo consultaría la base de datos para obtener la lista de todos los estudiantes y luego devolvería esa lista al controlador. Si la respuesta del modelo fue exitosa, entonces el controlador le pediría a la vista asociada con los estudiantes que devuelva una presentación de la lista de estudiantes. Esta vista tomaría la lista de estudiantes del controlador y la representaría en HTML que el navegador puede usar.

El controlador luego tomaría esa presentación y se la devolvería al usuario. Terminando así la solicitud. Si antes el modelo devolvía un error, el controlador manejaría ese error pidiéndole a la vista que maneja los errores que presente una presentación para ese error en particular. Esa presentación de error se devolvería al usuario en lugar de la presentación de la lista de estudiantes.

Como podemos ver en el ejemplo anterior, el modelo maneja todos los datos. La vista maneja todas las presentaciones y el controlador simplemente le dice al modelo y la vista qué hacer. Esta es la arquitectura básica y el funcionamiento del marco MVC.

Ventajas de MVC:

  • Los códigos son fáciles de mantener y se pueden ampliar fácilmente.
  • El componente del modelo MVC se puede probar por separado.
  • Los componentes de MVC se pueden desarrollar simultáneamente.
  • Reduce la complejidad al dividir una aplicación en tres unidades. Modelo, vista y controlador.
  • Es compatible con el desarrollo dirigido por pruebas (TDD).
  • Funciona bien para aplicaciones web que cuentan con el respaldo de grandes equipos de diseñadores y desarrolladores web.
  • Esta arquitectura ayuda a probar los componentes de forma independiente, ya que todas las clases y objetos son independientes entre sí.
  • Optimización de motores de búsqueda (SEO) amigable.

Desventajas de MVC:

  • Es difícil leer, cambiar, probar y reutilizar este modelo.
  • No es adecuado para construir aplicaciones pequeñas.
  • La ineficiencia del acceso a los datos a la vista.
  • La navegación del marco puede ser compleja ya que introduce nuevas capas de abstracción que requieren que los usuarios se adapten a los criterios de descomposición de MVC.
  • Mayor complejidad e ineficiencia de los datos

Marcos MVC populares:

A continuación se enumeran algunos de los marcos MVC más populares y ampliamente utilizados.

  • Ruby on Rails
  • Django
  • cerezapy
  • Primavera MVC
  • Catalizador
  • Rieles
  • Marco Zend
  • PHP de combustible
  • Laravel
  • Sinfonía

MVC generalmente se usa en aplicaciones que se ejecutan en una sola estación de trabajo gráfica. La división de componentes lógicos permite la legibilidad y la modularidad, además de que hace que la parte de prueba sea más cómoda.

Publicación traducida automáticamente

Artículo escrito por kaalel y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *