Estou lendo este incrível livro no momento. É impressionante a quantidade de coisas que deixei passar batido no aprendizado de Java. Talvez por falta de pessoas que mostrassem como funciona, ou simplesmente pela falta de interesse em saber como as coisas funcionavam alguns níveis abaixo dos quais estou acostumado.

Agora me deparo com diversas explicações sucintas e efetivas sobre os mais diversos pontos: DDD, Injeção de Dependências, Gerenciamento de Memória do Java, Garbage Collector, PermGen Space e muitos outros. Gosto da maneira como o livro foi escrito pelo fato de não ser difícil de entendê-lo, mesmo não sendo um programador de longa data.

Achei muito proveitoso o subcapítulo sobre classloader hell. Foi muito interessante pois agregou uma parte que desconhecia: um dos pontos essenciais do Java, o classloader. Daí passei a entender os malditos OutOfMemoryError do GlassFish que tanto me assolam no trabalho. Também, por conta dessa leitura, senti a necessidade de começar a estudar o Java 8.

O capítulo 4, sobre Separação de Responsabilidades traz uma visão clara sobre como utilizar a Injeção de Dependências e também o motivo de assim fazê-lo. Faz até pensar, “Como era feito antes, mesmo?”.

O capítulo 5 foi o motivo de várias inquietações em minha mente, visto que trata de testes e automação. Desde que aprendi sobre TDD e suas diversas variações venho defendendo essas idéias e o seu uso. Embora náo tenha participado de projetos profissionais com a metodologia em funcionamento, toda a vez que contato com um ou outro meio de teste, se provou mais do que valioso para a qualidade e antecipação de bugs, más decisões e problemas.

O capítulo 6 sobre decisões arquiteturais eu gostaria de ter lido há 3 anos atrás. Com isso eu teria evitado uma série de problemas e dores de cabeça no meu caminho como desenvolvedor. Com isso consegui compreender alguns pontos a serem vistos para a decisão de tecnologias e camadas a serem usadas em uma aplicação e também a não tentar fazer um quadrado virar roda!(No caso, usar um framework para algo que ele náo foi projetado e tentar fazer milagres)

O capítulo 7 trata sobre integrações de sistemas. Com esse capítulo revi alguns dos motivos que tornaram REST tão preferido sobre SOA, mas também me ajudou a ter uma visão maior da aplicabilidade de cada um. Náo é que simplesmente o SOA não deva ser usado, e sim que cada um tem o seu ambiente “correto” de uso.

Não concluí a leitura do mesmo, pois tenho o costume de ler as coisas e ter um certo tempo para digerí-las. Porém, até a metade do livro tive um grande aprendizado.

Conclui a leitura do livro em Outubro/2014. Com toda certeza foi uma compra acertada. O livro agregou muito no contexto a que se propõe(arquitetura e design de software). Hoje consigo reconhecer alguns problemas que dificilmente serão resolvidos com boas práticas e boa vontade de um desenvolvedor, mas sim com uma mudança de arquitetura ou readaptação de um time inteiro. Recomendo a compra e leitura deste livro. Não é um livro caro, tendo preços até mesmo perto dos R$40,00 e o retorno é certo.

O site oficial do livro tem mais informações e links para compra.

Obs.: não tenho ligação nenhuma com a editora ou com os autores. Simplesmente quis escrever esse review pra que acompanhasse a minha leitura e eu deixasse aqui expressa minha opinião.