Descripción general
El libro tiene un poco más de 500 páginas y consta de dos partes con 18 capítulos en total. Incluye numerosos fragmentos de código, diagramas y esquemas. No contiene ilustraciones clásicas. El nivel de dificultad es algo entre fácil y medio.
Tabla de contenidos
Parte I. Visión general
- Capítulo 1. Estratificación del sistema
- Capítulo 2. Organización de la lógica de negocio
- Capítulo 3. Modelos de objetos y bases de datos relacionales
- Capítulo 4. Presentación de datos en la Web
- Capítulo 5. Gestión de tareas concurrentes
- Capítulo 6. Sesiones y estados
- Capítulo 7. Estrategias de computación distribuida
- Capítulo 8. Visión general del sistema
Parte II. Patrones
- Capítulo 9. Representación de la lógica de negocio
- Capítulo 10. Patrones arquitectónicos de fuentes de datos
- Capítulo 11. Patrones objeto-relacionales para modelar el comportamiento
- Capítulo 12. Patrones objeto-relacionales para modelar la estructura
- Capítulo 13. Patrones de mapeo objeto-relacional mediante metadatos
- Capítulo 14. Patrones para la presentación de datos en web
- Capítulo 15. Patrones para procesamiento distribuido de datos
- Capítulo 16. Patrones para el manejo de concurrencia fuera de línea
- Capítulo 17. Patrones para almacenamiento del estado de sesión
- Capítulo 18. Patrones básicos
Opinión
Un libro puramente teórico sobre programación, que en algunos momentos incluso parece un poco anticuado. Lo elegí para leer simplemente por el apellido del autor: Martin Fowler lleva muchos años siendo un divulgador de la programación y un programador experimentado.
El libro deja una impresión ambigua: por un lado, analiza muchos patrones populares y soluciones arquitectónicas que llevan décadas siendo relevantes. Por otro lado, los conceptos detrás de las arquitecturas modernas han cambiado drásticamente en los últimos años —y aún más en las últimas décadas.
Patrones como Singleton (Instancia única), Adaptador o la arquitectura en capas con enfoque orientado a objetos siguen siendo aplicables, pero los sistemas modernos han evolucionado hacia arquitecturas más descentralizadas y de alto rendimiento. Ha crecido la importancia de las réplicas, el uso del caché es omnipresente, y los brokers de mensajes se han convertido en una parte indispensable de la mayoría de sistemas complejos, algo que el libro apenas aborda.
Por tanto, el libro apenas cumple como una guía actualizada para aplicaciones modernas. Y considerando que hoy en día la información educativa puede presentarse de formas más dinámicas que un texto seco, algunas pocas diagramas y código explicativo, no lo recomendaría especialmente. Quizá en su momento fue considerado un «clásico» de la programación, pero ahora estoy seguro de que existen fuentes más modernas y menos aburridas para estudiar contenidos similares.