"Desenhar sistemas é uma tarefa difícil. E, ainda fazer com que eles sejam escaláveis e performáticos, mantendo uma alta qualidade interna e externa, é um desafio." Esta afirmação, retirada da introdução do livro, sintetiza os principais desafios dos arquitetos de software. Os autores - conhecidos instrutores, consultores e desenvolvedores de aplicações - organizam e apresentam nessa obra suas experiências, aprendizados e visões sobre os principais componentes do projeto de sistemas. O livro se inicia apresentando uma visão mais próxima da plataforma Java. Conhecimento fundamental para se compreender porque alguns caminhos entregam resultado tão superior a outros. Depois discute Orientação a Objetos - do ponto de vista da arquitetura e não da implementação - apresentando exemplos de melhores práticas. Na sequência se discute a Separação de Responsabilidades para conseguir designs flexíveis e de baixo custo de manutenção. O capítulo de Decisões Arquiteturais apresenta argumentação e análise a respeito do uso de Frameworks de desenvolvimento. O capítulo 6 traz questões relativas à integração, ainda que futura e incerta, de sistemas via Web e REST. O uso e desenvolvimento de Testes de Software é o tema do próximo capítulo. Ainda que, aparentemente, contra o custo e a prática comum os autores defendem o uso de testes automatizados em nome da qualidade e manutenção dos sistemas. Como neste domínio não existem verdades absolutas, os autores oferecem uma conclusão, referências e extensa bibliografia para atualização e estudos complementares dos leitores.