
Fundamentals of Software Architecture, 2nd Edition
Mark Richards, Neal Ford
- Editorial
- O'Reilly
- Año
- 2025
- Páginas
- ~981
- Nivel
- Intermedio
De qué trata
Segunda edición ampliamente expandida y reescrita (publicada en 2025 por O'Reilly) del tratado fundamental sobre diseño de sistemas de Mark Richards y Neal Ford. El libro está dirigido a ingenieros de software, líderes técnicos y desarrolladores de nivel intermedio a avanzado que buscan transicionar con rigor hacia el rol de arquitecto de software o formalizar sus conocimientos bajo una disciplina de ingeniería contemporánea. No se centra en la sintaxis de un lenguaje específico, sino en los principios transversales que gobiernan el diseño de arquitecturas empresariales modernas, cloud-native y asistidas por inteligencia artificial.
La obra articula la arquitectura en tres pilares: diseño estructural, características arquitectónicas (requisitos no funcionales o '-ilities' como escalabilidad, disponibilidad, elasticidad, seguridad y mantenibilidad) y habilidades blandas de liderazgo y negociación. Cubre con detalle diversos estilos y patrones arquitectónicos: monolitos en capas, monolitos modulares (con cobertura fuertemente ampliada en esta edición), arquitecturas de microkernel, basadas en microservicios, guiadas por eventos (event-driven), basadas en espacio (space-based) y orientadas a servicios. Enseña a definir y medir la gobernanza del sistema mediante funciones de aptitud (fitness functions, ejemplificadas con herramientas como ArchUnit), gestión del acoplamiento y la cohesión, registro de decisiones mediante ADRs (Architectural Decision Records), dinámicas de equipos según Team Topologies y el impacto de los modelos de lenguaje (LLMs) e IA generativa en el diseño técnico.
En lugar de codificar proyectos de software de extremo a extremo, el aprendizaje práctico se sustenta en ejercicios analíticos y en las célebres 'Architecture Katas' (estudios de caso como Silicon Sandwiches o Going, Going, Gone) y preguntas de reflexión al cierre de cada capítulo, donde se desafía al lector a diseñar soluciones, contrastar opciones y justificar compensaciones (trade-offs) ante limitaciones de negocio reales. Su principal aporte es desmitificar la arquitectura transformándola en una disciplina medible y defendible, alejada de modas pasajeras. Deja fuera la configuración de infraestructura o código de despliegue particular (como Kubernetes o Terraform), por lo que conviene tener experiencia previa en desarrollo corporativo y patrones de diseño de software.
- Arquitectura de software
- Estilos arquitectónicos
- Microservicios
- Monolito modular
- Arquitectura guiada por eventos
- Características arquitectónicas (-ilities)
- Fitness Functions (ArchUnit)
- Análisis de trade-offs
- Architecture Katas
- ADRs (Architectural Decision Records)
- Team Topologies
- Liderazgo técnico
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

