Enlace al artículo en medio
Consulte el artículo para obtener más información sobre el concepto y también la implementación.
Clean Architecture es una solución práctica de arquitectura de software del legendario Robert C. Martin (también conocido como "Tío Bob"). Al aplicar las reglas universales de la persecución de software, puede mejorar drásticamente la productividad del desarrollador a lo largo de la vida de cualquier sistema de software.
¿Por qué maximizar el número de decisiones no tomadas? Nosotros, como desarrolladores, por experimento, los marcos que elegimos al comienzo del proyecto (bases de datos o marcos web, etc.) somos difíciles de reemplazar durante la vida del proyecto y eso se debe a un acoplamiento estrecho y muchas otras decisiones tempranas, uno de los errores comunes es que construimos nuestro proyecto basado en estos marco y luego permitimos que la lógica comercial se envíe alrededor de ellas. La respuesta es que debemos construir una arquitectura que permita el cambio, sí, enfatizo el cambio. Cambio de bajos componentes y marcos sin alcanzar la lógica central y los componentes de alto nivel.
El patrón enfatiza que cada proyecto de software está construido con solo dos elementos de la política y los detalles. La política (componentes de alto nivel) es el núcleo del sistema de software que incluye todas las reglas comerciales, todas las entidades y todo lo que hace una identidad única para ese software. Como una entidad del cliente o una acción de pago en una plataforma de comercio electrónico. El detalle (componentes de nivel inferior) son las formas en que los humanos pueden interactuar con las reglas comerciales, los patrones los nombran como dispositivos IO, bases de datos, servidores web, etc., como un botón de pago que desencadena la regla comercial correspondiente o persistiendo esa entidad del cliente en una base de datos o archivo o cualquier mecanismo de persistencia.
El objetivo final del patrón es separar los componentes de alto nivel de los componentes de bajo nivel e tratar de mantenerlos trabajando juntos y hacer inmunes a alto nivel a partir de los cambios en los detalles. Permítanme hacer que toda la idea sea concreta en su mente con algunos ejemplos. Imagine el software que se basa en una base de datos relacional como MySQL y usa Express JS como servidor web, luego, después de un año, las partes interesadas introducen nuevos requisitos y características que son inconsistentes con la base de datos relacional y requieren una base de datos NoSQL. Si la implementación del software sigue una buena arquitectura con un acoplamiento suelto entre componentes, no necesita hacer una revolución con los cambios. Es bastante fácil reemplazar la base de datos o el servidor web o cualquier otro detalle del software que se ajuste a la solución sin afectar las reglas comerciales y los componentes de nivel superior.
El tío Bob enfatiza los principios sólidos que se incorporan con un patrón de arquitectura limpia para formar una solución de software legible, mantenible, escalable y fácil de implementar.