Voy en este artículo a intentar, y si, digo intentar, arrojar algo de luz sobre un tema muy candente en estos últimos años, se trata del modelo vista controlador. Y efectivamente, os estaréis preguntando, pero esto que es, si no hay por donde cogerlo.
Cada vez las aplicaciones que hacemos son más complejas, con mas funcionalidades, mas grandes, necesitan más recursos y deben dar soporte a más plataformas, esto lleva, inevitablemente a la realidad de que debemos organizar el código de forma más eficiente para que un programa o una aplicación no se nos vaya de las manos.
El primer paso en este sentido, y el primer gran cambio vino con la programación orientada a objetos, una forma de organizar el código en bloques reutilizabais que ahorraba mucho tiempo a la hora de generar un programa, que bonitos esos años noventa verdad?
Pero con el paso de los años esto no ha sido suficiente, ahora, en la mayoría de aplicaciones modernas, debemos ocuparnos de tantas cosas a la vez que la programación orientada a objetos no es suficiente, así que surgió el nuevo paradigma en programación, la filosofía modelo vista controlador.
Vamos a ver si consigo explicarlo de forma sencilla, el modelo vista controlador establece que hay tres bloques independientes dentro de cada aplicación, y, como podéis haber supuesto en este punto, esos bloques son:
Modelo vista controlador 1 – El modelo
Que viene a ser equivalente a los datos, muy resumido podríamos decir que el modelo es la base de datos que estamos utilizando, el modelo se diseña en la aplicación como un bloque independiente y solo se encarga de mantener los datos bajo control que no haya problemas con la base de datos donde estamos almacenando los datos que necesita la aplicación para funcionar
Modelo vista controlador 2 – Las vistas
Las vistas, van a ser las distintas pantallas que vas a ver en la aplicación, generar las vistas es como programar una serie de plantillas que van a permitir al usuario interactuar con la aplicación. Esta pantalla con este post que estás viendo ahora mismo es una vista que a tí te permite leer este artículo, por ejemplo. Aquí es donde aplicaremos los estilos, el html, etc…
Modelo vista controlador 3 – El controlador
Y aquí tienes al tercer hijo y el que más trabajo cuesta entender a priori. El controlador es el que va a permitir la comunicación entre las vistas y el modelo, es decir, es un poco el que se va a encargar de coger los datos que ha introducido un usuario en un formulario y los va a meter en la base de datos, o bien, va a coger los datos que hay en la base de datos y los va a preparar para que una vista los muestre en pantalla tan preciosos como tu sueles verlos.
Voy a poner este pequeño esquema y sigo con mi explicación:
Voy a poner un simil, imagina que tu llegas a un almacén eléctrico que tiene 20.000 referencias porque quieres un enchufe, en este caso tu eres la vista, que necesitas un enchufe y el almacén que tiene los cientos de estanterías con miles de productos diferentes es el modelo donde está todo almacenado. Es muy probable que si entras directamente al almacén, o bien te tires mil horas para encontrar el enchufe, o que ni siquiera lo encuentre, incluso puede darse el caso de que la líes parda porque, sencillamente, no sabes como está organizado el almacén y cambies alguna cosa de sitio que no debes. Pues para esto es para lo que necesitas al controlador, el controlador es el tipo que hay en el mostrador, que atiende lo que tú necesitas, va al almacén y te lo saca rápidamente.
Sé que es un ejemplo un poco burdo pero creo que se entiende el concepto, ten en cuenta además, que a día de hoy, no solo estás accediendo al modelo desde el navegador, sino que también se accede desde móviles, desde tablets, se está empezando a acceder desde electrodomésticos, etc… Esto solo acentúa la necesidad de seguir este esquema y mantener independientes la vista del modelo, de forma que necesiten del controlador para poder comunicarse de forma efectiva.
Básicamente, la vista solicita datos para mostrarlos, pero es el controlador el que se encarga de acceder a la base de datos, procesarlos y servirselos a la vista para que los muestre adecuadamente y de forma dinámica. Igualmente, recoge los datos de los formularios que rellena el usuario, los procesa, y los inserta adecuadamente en la base de datos.
En realidad no es demasiado complicado como estarás viendo, y tu dirás, si claro, llevo tres días dandole vueltas a un bug y tu diciendo que no es tan complicado, no? Pues si, eso también suele pasar, pero poco a poco vas viendo que, una vez que entiendes el concepto, es mucho más sencillo de lo que parece.
Espero que te haya resultado interesante, si tienes dudas o quieres profundizar un poco más en el tema, por favor, házmelo saber, estaré encantado de oir tus aventuras!
Deja una respuesta