Modelo de proveedor
¿Se ha dado cuenta de que, a pesar de su omnipresencia, el diseño de aplicaciones web sigue siendo un reto? Aunque sus beneficios motivan su creación, no existen directrices bien establecidas para su diseño. Esto suele dar lugar a comportamientos y apariencias incoherentes, incluso entre aplicaciones web creadas por la misma empresa. Los patrones de diseño para aplicaciones web, similares en concepto a los de los sitios web y el diseño de software, ofrecen una solución eficaz. En Web Application Design Patterns, Pawan Vora documenta los patrones de diseño para aplicaciones web no sólo identificando soluciones de diseño para los problemas de interacción con el usuario, sino también examinando los fundamentos de su eficacia y presentando cómo deben aplicarse.
Diseño de aplicaciones web
Modelo-Vista-Controlador (MVC) es un patrón arquitectónico de software[1] comúnmente utilizado para el desarrollo de interfaces de usuario que dividen la lógica del programa relacionado en tres elementos interconectados. Esto se hace para separar las representaciones internas de la información de las formas en que ésta se presenta y se acepta por parte del usuario[2][3].
Tradicionalmente utilizado para las interfaces gráficas de usuario de escritorio (GUI), este patrón se hizo popular para el diseño de aplicaciones web[4] Los lenguajes de programación más populares tienen marcos MVC que facilitan la implementación del patrón.
El MVC, una de las ideas fundamentales en el desarrollo temprano de las interfaces gráficas de usuario, se convirtió en uno de los primeros enfoques para describir e implementar construcciones de software en términos de sus responsabilidades[5].
Trygve Reenskaug creó MVC mientras trabajaba en Smalltalk-79 como científico visitante en el Centro de Investigación de Xerox Palo Alto (PARC) a finales de los años 70.[6][7][8]: 330 Quería un patrón que pudiera utilizarse para estructurar cualquier programa en el que los usuarios interactuaran con un conjunto de datos grande y enrevesado. Su diseño tenía inicialmente cuatro partes: Modelo, Vista, Cosa y Editor. Después de discutirlo con los otros desarrolladores de Smalltalk, él y el resto del grupo se decidieron por Modelo, Vista y Controlador[6].
Clase Singleton de React
En este capítulo se presentan algunos términos y conceptos generales en torno a los patrones de diseño que son útiles en la arquitectura de las aplicaciones web. Se describen varios patrones de uso común y se presentan algunos marcos de trabajo que simplifican el proceso de desarrollo de aplicaciones web.
Los patrones de diseño proporcionan soluciones arquitectónicas a problemas comunes de diseño de software. Estos patrones han surgido a lo largo del tiempo a través de la experiencia y los conocimientos de los desarrolladores. Esta sección presenta algunos patrones básicos que pueden resultar útiles en el contexto del desarrollo de aplicaciones web.
Los controladores frontales son responsables de enrutar las solicitudes de los usuarios. Además, pueden imponer la navegación en las aplicaciones web. Cuando los usuarios se encuentran en secciones de una aplicación web en las que pueden navegar libremente, el Controlador Frontal simplemente transmite la solicitud a la página apropiada. Por ejemplo, en una aplicación de comercio electrónico, el cliente navega por un catálogo de productos. En las secciones controladas en las que los usuarios deben seguir una ruta específica a través de la aplicación, el controlador frontal puede validar las solicitudes entrantes y dirigirlas en consecuencia. Por ejemplo, un cliente quiere comprar los artículos de una cesta de la compra. Ese cliente debe seguir una ruta concreta para completar la compra con éxito.
Patrones de diseño comunes
En la ingeniería del software, un patrón de diseño de software es una solución general y reutilizable para un problema que se presenta comúnmente dentro de un contexto dado en el diseño de software. No es un diseño acabado que pueda transformarse directamente en código fuente o máquina. Se trata más bien de una descripción o plantilla de cómo resolver un problema que puede utilizarse en muchas situaciones diferentes. Los patrones de diseño son las mejores prácticas formalizadas que el programador puede utilizar para resolver problemas comunes al diseñar una aplicación o sistema.
Los patrones de diseño orientados a objetos suelen mostrar las relaciones e interacciones entre clases u objetos, sin especificar las clases u objetos finales de la aplicación que están involucrados. Los patrones que implican un estado mutable pueden ser inadecuados para los lenguajes de programación funcional. Algunos patrones pueden resultar innecesarios en los lenguajes que tienen soporte incorporado para resolver el problema que intentan resolver, y los patrones orientados a objetos no son necesariamente adecuados para los lenguajes no orientados a objetos.