Descrição Geral
O livro, com pouco mais de 500 páginas, é composto por duas partes que incluem 18 capítulos. Contém diversas inserções com códigos, diagramas e esquemas. Não possui ilustrações tradicionais. O nível de dificuldade é algo entre fácil e médio.
Sumário
Parte I. Visão Geral
- Capítulo 1. Estratificação do Sistema
- Capítulo 2. Organização da Lógica de Negócio
- Capítulo 3. Modelos de Objetos e Bancos de Dados Relacionais
- Capítulo 4. Apresentação de Dados na Web
- Capítulo 5. Gerenciamento de Tarefas Paralelas
- Capítulo 6. Sessões e Estados
- Capítulo 7. Estratégias de Computação Distribuída
- Capítulo 8. A Visão Geral
Parte II. Padrões
- Capítulo 9. Apresentação da Lógica de Negócio
- Capítulo 10. Padrões Arquiteturais de Fontes de Dados
- Capítulo 11. Padrões Objeto-Relacionais voltados à Modelagem de Comportamento
- Capítulo 12. Padrões Objeto-Relacionais voltados à Modelagem de Estrutura
- Capítulo 13. Padrões de Mapeamento Objeto-Relacional usando Metadados
- Capítulo 14. Padrões voltados à Apresentação de Dados na Web
- Capítulo 15. Padrões para Processamento Distribuído de Dados
- Capítulo 16. Padrões para Tratamento de Tarefas com Concorrência Autônoma
- Capítulo 17. Padrões para Armazenamento do Estado de Sessão
- Capítulo 18. Padrões Básicos
Opinião
Um livro puramente teórico sobre programação, que em alguns momentos parece até um pouco ultrapassado. Li este livro exclusivamente por causa do sobrenome do autor — Martin Fowler já é há vários anos um grande divulgador da programação e um programador experiente.
O livro deixou uma impressão ambígua: por um lado, examina muitos padrões populares e soluções arquiteturais que há décadas mantêm sua relevância. Por outro lado, os conceitos por trás da construção de arquiteturas modernas mudaram significativamente nos últimos anos — e ainda mais nas últimas décadas.
Padrões como Singleton, Adaptador ou arquitetura em camadas com abordagem orientada a objetos continuam aplicáveis, mas os sistemas modernos tornaram-se mais descentralizados e de alta carga. O papel das replicações aumentou, o uso de cache é generalizado, e os corretores de mensagens tornaram-se parte indispensável na maioria dos sistemas complexos — tudo isso praticamente não é tratado no livro.
Portanto, o livro mal consegue funcionar como um guia atualizado para aplicações modernas. Considerando que, atualmente, o material didático pode ser apresentado de forma muito mais dinâmica do que um mero texto seco, alguns diagramas e código explicativo, eu não recomendaria especialmente este livro. Talvez algum dia ele tenha sido considerado um "clássico" da programação, mas hoje, tenho certeza, existem fontes mais modernas e bem menos tediosas para estudar conteúdos semelhantes.