
¿Qué es MVC?
Entre los programadores y diseñadores de páginas web de vez en cuando se escucha esta curioso acrónimo, MVC.
MVC y los patrones de diseño
MVC es un patrón de diseño, una frase que suena muy bonita pero lo que realmente significa es algo bien simple, solución recurrente. En el mundo del software de vez en cuando una solución a un problema se hace popular y a partir de ese momento empieza a aparecer en libros y se le conoce como un patrón de diseño.
Entre los muchos patrones de diseños que existen hay uno que se ha hecho demasiado famoso en este último tiempo en el ámbito de la programación web, y se llama MVC que consiste en dividir la construcción de un sistema en 3 capas, que reciben los nombres de Modelo, Vista y Controlador.
Pero antes de entrar a explicar en detalle en que consiste cada etapa, sería interesante saber cual es el problema que resuelve este patrón.
El problema.
Cuando se hace un sitio o aplicación web, que puede llegar a contener varias páginas, consultas, e inserciones en bases de datos, lógica de autenticación y en general todo el pack común de cosas que tiene una aplicación como Twitter, Pinterest, Tumblr, Facebook, o incluso la página de la intranet de tu empresa.
En uno de estos sitios web pueden llegar a trabajar decenas de programadores, incluso si fueran pocos, es muy normal que llegue uno nuevo a retomar el trabajo de uno anterior. En ese caso, en el momento que le toque meter mano en el código se va a dar cuenta que no sabe que hace y donde está cada linea de código. Este pobre programador, va a estar viendo una página web en su navegador y cabeceandose contra la pared porque no tiene ni idea que archivo o que línea de código tiene que modificar para poder lograr los cambios que desea.
Pero hay un problema aún mucho más grande, en un sistema sin ninguna estructura aparente, es muy fácil modificar algo y terminar rompiendo decenas de otras cosas.
MVC al rescate.
MVC es una forma de organizar el código de un sitio o una aplicación para ayudar a mantener el orden y estructura de un proyecto.
El modelo.
En MVC tu aplicación se va a separar en 3 capas, la primera es el modelo, que es la capa que maneja las reglas del negocio, y se encarga de cuidar los datos. Cuando se habla de aplicaciones web el modelo es el que se encarga de conectarse con la base de datos y mantener la integridad de ellos.
La vista.
La segunda capa es la vista, esto es lo que ve el usuario, por ejemplo las páginas web, el html, el javascript, el css.
El controller
La tercera capa es la que es difícil de explicar, pero es la que maneja que páginas son accesible y no, y se encarga de rescatar los datos del modelo y luego entregárselo a las vistas, también en este punto se manejan cosas como identificar quién es el.
después de haber dictado el curso introductorio y uno avanzado de ruby on rails decenas de veces creo que la mejor metáfora para transmitir que es el controller es la de televisión.
La metáfora de la televisión
En la metáfora de la televisión, el controller vendría siendo el control remoto, con el puedes cambiar los canales, hacer SAP (Manejo de idiomas) y bloquear los canales de adultos para los niños (autenticación), etc. Las vistas son los programas que ves y el modelo es la programación que te envía tu proveedor de cable.
La lógica es la siguiente.
Un usuario utiliza el control remoto (el controller) para cambiar de canal, al cambiar de canal te “conectas” con el proveedor de cable para que te envíe el programa nuevo, y luego tu simplemente lo disfrutas.

- ¿Por qué Twitter fue hecho en Ruby on Rails? - abril 15, 2016
- Construyendo una landing page en Ruby on Rails desde cero. - febrero 11, 2016
- Pair programming (de a dos es mejor) - febrero 11, 2016
- Creando un wordpress en hostinger - abril 18, 2015
- Login con facebook en rails 4.1 y 4.2 - febrero 3, 2015
- EL ASSET PATH DE RAILS - enero 26, 2015
- Entendiendo los objetos en Ruby - enero 21, 2015
- La verdadera educación Tecnologica - enero 14, 2015
- Kit Digital del gobierno de Chile - enero 14, 2015
- ¿Como diseñar un buen Layout para tu página web? - enero 13, 2015