- Si el código es difícil de cambiar, es de mala calidad
- La facilidad del cambio es más importante que la solidez de un problema
- ¿Cómo construír un buen sistema?Aspectos a tener en cuenta:
- La arquitectura de un sistema depende mucho de las estructuras de los equipos
- Las estructuras dependen de la forma de trabajar en los equipos
- Las colaboraciones humanas dependen de sus experiencias de vida
- Objetivos de una arquitetura. El código ha de ser:
- Fácil de cambiar
- Fácil de probar
- Fácil de desplegar
- Principios de una arquitectura:
- Conoce bien el problema
- El código ha de ser legible (ahora y siempre)
- Intenta desacoplar los dominios del sistema (que las partes puedan resolver partes del problema)
- Aplicar el Single Responsability Principle
- TDD (Test Driven Development), muy buena herramienta para autodocumentar el código, pues cada test es un contrato implícito de cada parte del código
- Hoy en día no hay prácticamente sistemas con microservicios, sino que hay sistemas monolitos distribuidos (varios servicios que usan una misma BBDD por ejemplo). Monolito vs microservicios:
Monolito distribuido vs microservicios: