“
Como resultado de utilizar este enfoque, no estarás atado a un framework específico y podrás cambiar fácilmente la biblioteca de vista dentro de tu aplicación, como React, Preact, Vue, Mithril, sin tener que reescribir la lógica de negocios y, en la mayoría de los casos, las vistas. Puedes migrar fácilmente la aplicación a una biblioteca más popular sin tener que reescribir la lógica de negocios.
Arquitectura limpia de aplicaciones web
Testabilidad
Las reglas de negocio pueden ser probadas sin una interfaz de usuario, base de datos, servidor web u otros componentes externos.
Independiente de la interfaz de usuario
La interfaz de usuario puede ser cambiada fácilmente sin afectar el resto del sistema.
Independiente de la base de datos
Puedes reemplazar Oracle o SQL Server con MongoDB, BigTable, CouchDB o cualquier otra base de datos. Tus reglas de negocio no están relacionadas con la base de datos.
Independencia de cualquier servicio externo
Las reglas de negocio simplemente no conocen nada sobre el mundo exterior. Durante muchos años, las ideas descritas en este libro han sido la base para la creación de aplicaciones complejas en una amplia variedad de campos. Esta flexibilidad se logra dividiendo la aplicación en capas de Servicio, Repositorio y Modelo.
Controlador
Responsable de interactuar con el usuario a través de IO.
Servicio
Responsable de la lógica de negocio y su reutilización entre componentes.
Almacenamiento
Responsable de recuperar datos de fuentes externas como bases de datos, APIs, almacenamiento local, etc.
Modelos
Responsable de la transferencia de datos entre capas y sistemas, así como de la lógica para procesar estos datos.
¿Para quién está destinada la arquitectura limpia?
Ahora las aplicaciones web son tan grandes que la cantidad de lógica de negocio se ha vuelto comparable o incluso mayor que en aplicaciones de servidor, escritorio y móviles.
¿Cómo utilizar la arquitectura limpia en aplicaciones web?
Angular es un framework monolítico
Fue simplemente trasladado tal cual, sin considerar las particularidades de las aplicaciones web y sin tener en cuenta el sistema de importación modular de JavaScript moderno.
Motor de vista terrible
Es muy primitivo y se queda muy corto en comparación con la simplicidad de JSX. Los datos no se escriben en la fase de escritura de código y compilación.
¿Qué pasa con otros frameworks?
Extensión de la funcionalidad de los componentes del framework
Como bonificación, obtuvimos la capacidad de añadir o cambiar el comportamiento de los componentes de la biblioteca de presentación. Utilizando el enfoque de Arquitectura Limpia, React renderiza más que solo el componente donde se produjo el error. Puedes añadir monitoreo, análisis y otras características con la misma facilidad.
Validación de datos
Además de describir datos y transferir datos entre capas, los modelos tienen grandes posibilidades. Por ejemplo, si incluyes la biblioteca class-validator, con solo agregar decoradores puedes validar datos en estos modelos, incluido con un poco de ajuste puedes validar formularios web.
Creación de entidades
Si necesitas trabajar con una base de datos local, puedes vincular la biblioteca TypeORM y tus modelos se transformarán en entidades con las que se generará y operará la base de datos.
Conclusión
Si tu lógica de negocio está en el backend y tu tarea es recibir datos, mostrarlos al cliente y procesar los clics de botón, entonces no sentirás la flexibilidad de la Arquitectura Limpia.
“