[MÚSICA] Para entender mejor las aplicaciones web, me gustaría hablarles acerca de lo que es la programación, y también acerca de las tendencias actuales en programación. Para empezar, ¿qué es la programación? Pues, es simplemente la escritura de una serie de comandos en un lenguaje determinado de programación que sirven para que el ordenador haga algo que nos interesa, que nos resulta útil. También me gustaría hablarles de mi filosofía acerca de la programación. Muchas arquitecturas de aplicaciones web hacen uso del patrón de diseño modelo vista controlador. Las primeras aplicaciones web no tenían mucha organización en el lado del servidor, esto es algo que you he mencionado pero me gustaría reiterarlo aquí. Eran principalmente páginas web estáticas, y no había separación entre los datos en la página de su presentación en el cliente. De manera que cuando las aplicaciones se hicieron más complejas, una vez más las secuencias de comandos del lado del servidor se hicieron muy complicadas y difíciles de mantener. El diseño modelo vista controlador proporciona un medio para hacer frente a esta complejidad. Lo que hace es desacoplar los datos del modelo de la presentación de la vista, y hay un controlador que gestiona solicitudes y coordina entre estos dos bloques. Esto hizo las aplicaciones mucho más robustas y fáciles de mantener. Antes de utilizar el patrón de diseño modelo vista controlador en aplicaciones web, los diseños de interfaz de usuario tendían acumular el modelo, la vista y el controlador todos juntos. Lo que el MVC hace es que los desacopla. Estos patrones de diseño MVC fueron utilizados anteriormente como parte de las interfaces de usuario basados en Windows y otros, por ejemplo, las interfaces gráficas de usuario en Mac, Windows o Linux. Todos estos utilizan este patrón de diseño. El hecho de reconocer que esta arquitectura también podría funcionar en este entorno cliente servidor asociado a aplicaciones web fue un importante paso adelante en el desarrollo de arquitecturas de aplicaciones web. Vamos a ver cómo funciona. Consta de los siguientes componentes. Hay un modelo, y el modelo es la representación específica del dominio de los datos a través de los cuales opera la aplicación junto con algo de conocimiento específico del dominio que pueda añadir significado a estos datos. Por ejemplo, podría ser la información relacionada con las compras que un usuario ha hecho junto con la propia información personal del usuario o su información de cuenta, quiero decir. A menudo hay una base de datos que se utiliza para almacenar esta información. La vista se utiliza para representar la información asociada a un modelo y por lo general esto se realiza a través de algún tipo de interfaz de usuario. A veces se crean múltiples vistas para un solo modelo, cada uno sirviendo un propósito diferente, por ejemplo podemos tener una vista para mostrar todas las compras anteriores que un usuario pueda tener, y es posible que tenga una vista diferente para que el usuario pueda editar su información personal e información de su cuenta. Aunque igualmente, estos dos bloques estaban directamente vinculados entre ellos y, estaban como he mencionado más o menos mezclados. Esto ha llevado a una gran cantidad de problemas y confusión, porque era muy difícil cambiar el modelo y a veces también cambiar el código de la vista. Y aquí es donde entra el tercer bloque. Nos deshacemos de esto y añadimos la tercera pieza llamada controlador, que es responsable de la mediación entre el modelo y la vista. Así que si el modelo se comunica con una vista, el controlador sería el responsable de la actualización del modelo, y del mismo modo si se cambia el modelo el controlador es responsable de la actualización de la vista. Les voy a mostrar ahora el control de flujo específico que ocurre entre estos tres elementos en el patrón de diseño modelo vista y controlador. El flujo en el patrón de diseño MVC es el siguiente, en primer lugar la interfaz de usuario se procesa y se espera la entrada del usuario, esta es la vista. A continuación el usuario proporciona alguna entrada, por ejemplo el usuario puede hacer clic en un botón y entonces el controlador maneja este evento de entrada y solicita alguna acción. Esto podría ser algún tipo de código de controlador o función de llamada que es inteligible por parte de los modelos. El controlador es el encargado de hacer esto. Entonces el controlador notifica al modelo, y esto puede conducir a un cambio de estado en este modelo. Por ejemplo, es posible que se actualice la información de cuenta de una persona. Finalmente, el controlador notifica a la vista si esta vista tiene que ser actualizada, por ejemplo si ha actualizado la cuenta. Entonces es posible que desee representar esa descripción actualizada cuando el usuario va a buscar a esa información. Y luego vamos al paso 1, así que este es el control de flujo asociado con un diseño modelo vista controlador. Aquí está la arquitectura canónica de aplicaciones web de 6 niveles que les describí anteriormente, y vamos a ver que el patrón de diseño modelo vista controlador se ejecuta sobre el nivel web en esta arquitectura. Vamos a discutir exactamente cómo se implementa en un modulo futuro que aborda el nivel web.