Clean architecture


La definición

La denominación de “clean architecture” tiene como origen un artículo escrito por Robert C. Martin también conocido como Uncle Bob. Este ingeniero de software americano es autor de otro libro que lleva por título Clean Code y en el que se reflexiona acerca de buenas prácticas y estudio de patrones a la hora de escribir software.

Una arquitectura limpia es aquella que pretende conseguir unas estructuras modulares bien separadas, de fácil lectura, la limpieza del código y la testabilidad.

Queremos que los sistemas construidos con una arquitectura limpia sean:

  • Independientes del framework utilizado: que no estén atados a librerías usadas en la construcción de nuestro sistema. En nuestro caso no querremos que el framework de Android nos condicione la forma de desarrollar, debe ser una herramienta más.

  • Testables: la lógica de nuestra aplicación, lo que corresponde al modelo debe ser independiente y por tanto testable al margen de la interfaz gráfica, la base de datos o las peticiones a una api.

  • Independientes de la interfaz gráfica: debemos usar patrones que nos permitan cambiar fácilmente la interfaz gráfica. En otras palabras tenemos que evitar acoplar el funcionamiento de la vista con el modelo. Para ello veremos patrones como MVP, MVVM o el clásico MVC.

  • Independientes de los orígenes de datos: podremos sustituir nuestro origen de datos fácilmente y sin importarnos si este está disponible en una base de datos local, ficheros, una base de datos relacional o no relacional o a través de peticiones a una API. Para ello haremos uso de patrones de diseño como el denominado Repository.

  • Independientes de factores externos: tus reglas de negocio no conocen nada del mundo exterior.

Angel Vázquez

my bio

Coruña, Spain https://anjovazquez.eu