Patrones de arquitectura en el código
Architecture Patterns with Python, de Harry Percival y Bob Gregory, reúne los patrones que hacen que la arquitectura se note en el código y no solo en un diagrama.
Puertos y adaptadores
Alistair Cockburn formuló la arquitectura hexagonal con un objetivo explícito: que una aplicación pueda ser manejada por usuarios, programas, tests o scripts por igual, y que se pueda desarrollar y probar aislada de sus dispositivos y bases de datos definitivos.
Prompteo, esta misma app, está construida así:
src/core/domain/— dominio puro, sin imports de framework.src/core/ports/— interfaces salientes; ahí viveContentRepository.src/core/application/— casos de uso que orquestan el dominio por los puertos.src/adapters/— implementaciones:content/static-content.tsimplementaContentRepositoryleyendo loscourse.json.src/app/ysrc/components/— el adaptador que maneja la app, que depende hacia adentro y nunca al revés.
Los patrones del libro
- Repositorio: abstracción sobre el almacenamiento persistente que finge que todo está en memoria; sus métodos centrales son
add()yget(). El ORM depende del dominio, no al revés. - Capa de servicio: capa de orquestación. Evita duplicar la coreografía entre entrypoints y evita la pirámide de tests invertida.
- Unit of work: arregla una capa de servicio acoplada a la sesión; junta los eventos de dominio y se los pasa al message bus después del commit.
- CQS y CQRS: Meyer separó comandos de consultas en Eiffel; Fowler atribuye CQRS a Greg Young.