ARQUITECTURAS DE SOFTWARE
Si quieres desarrollar código limpio, testeable y funcional necesitas conocer todo sobre clean architecture y como puedes implementarla
Índice:
Estos son los títulos que encontrarás aquí:
Introducción – ¿Qué es arquitectura de software?
La arquitectura de software consiste en definir una solución estructurada que cumpla con los objetivos de negocio. Esta estructura se crea a través de un plano que divide, organiza y comunica los diferentes componentes de un sistema.
Una buena arquitectura de software hace que el sistema sobre el que estamos trabajando sea más fácil de desarrollar, mantener, entender y desplegar por lo que si quieres conocer como mejorar la arquitectura de tus aplicaciones será fundamental implementar arquitecturas limpias.
Arquitecturas Limpias
Entre los tipos de arquitecturas más importantes nos encontramos con las clean architectures o también conocidas como arquitecturas limpias. Estas basan su funcionamiento en el principio de diseño de software que se conoce como la separación de responsabilidades (SRP). Mediante este principio se establece una arquitectura por capas en las que cada una de las capas deberá presentar una responsabilidad específica.
De esta manera nuestra arquitectura dispondrá de al menos una capa para las reglas del negocio con lo cual, implementando la regla de dependencia y el principio de inversión de dependencia de SOLID será mucho más sencillo desacoplar la lógica de negocio de la infraestructura.
Tipos de arquitecturas limpias
Entre las arquitecturas limpias podemos encontrar:
Onion Architecture
DCI (Data - Context - Interaction)
BCE (Boundary - Contol - Entity)
Scream Architecture
Hexagonal Architecture
¿Por qué es importante utilizar arquitecturas limpias?
Al crear software a partir de una arquitectura limpia obtenemos muchas ventajas que pueden marcar la diferencia en el resultado final de nuestras aplicaciones.
Una de ellas es la independencia que obtenemos entre capas que no están interconectadas. Esto por ejemplo, permite que podamos sustituir fácilmente las librerías porque no están acopladas dentro de los niveles más profundos del sistema. Su independencia entre capas nos permitirá también reemplazar con mayor facilidad la base de datos sin afectar las reglas de funcionamiento u otras capas lo que facilita el mantenimiento y la expansión de un programa.
Además, al alojar en una capa específica las reglas lógicas de funcionamiento, los tests serán mucho más fáciles de ejecutar, ya que estas reglas no dependerán de la interfaz, ni del servidor o la base de datos con lo cual nos aseguraremos de obtener una mejor y mayor funcionalidad en todo momento.
Libros de arquitectura de software
Si estás buscando un libro de arquitectura de software que te ayude a desarrollar las buenas prácticas en programación es fundamental que conozcas Clean Architecture: A Craftsman's Guide to Software Structure and Design de Robert C Martin.
A través de este libro podrás entender y desarrollar todos los conceptos necesarios para adaptar el desarrollo de tu código a una arquitectura de software cada vez más limpia.
Conclusión
En el diseño de aplicaciones existen diferentes tipos de arquitecturas y es importante remarcar que ninguna de ellas debe representar para nosotros una regla incorruptible que debemos seguir religiosamente.
Ahora bien, si buscamos perfeccionar nuestro código aplicando las buenas prácticas en programación, es importante que cada vez más desarrollemos arquitecturas limpias que sean capaces de solucionar problemas específicos y además estén construidas con flexibilidad para adaptarse a los ajustes futuros.