Impressões sobre o livro Introdução à arquitetura e design de software
Autor: Tiago Ribeiro | Publicado: 2012-02-12T15:24:00-08:00






Bom hoje terminei de ler o livro&nbsp;Introdução à arquitetura e design de software escrito pelo pessoal da Caelum,&nbsp;foi o livro de tecnologia que&nbsp;li em menor tempo, entre os motivos para tal feito destaco a&nbsp;didática&nbsp;utilizada pelo autores, o livro é muito gostoso de ler e de fácil compreensão, outro fator é que ele não é muito grande. São ao todo 232 páginas de puro&nbsp;conteúdo. Pode parecer que é superficial mas não é, o livro aborda muito bem alguns dos principais aspectos para desenvolver um&nbsp;software&nbsp;bem arquitetado e com&nbsp;ótimo&nbsp;design, mostrando diversos pontos positivos e negativos ao escolher certos caminhos no desenvolvimento.
O livro é todo baseado no Java e trata de aspectos que vão desde a JVM até &nbsp;a Integração de sistemas Web e Rest.
Os&nbsp;capítulos&nbsp;que mais gostei foram o 3º -&nbsp;Tópicos&nbsp;de Orientação a Objetos, 4º- Separação de responsabilidades e o 6º-&nbsp;Decisões&nbsp;arquiteturais.

No capitulo 3 o livro fala de como programar orientado a interfaces e não á implementação deixando o código menos acoplado, como devemos buscar programar compondo comportamentos para nossas classes, devemos&nbsp;também&nbsp;evitar e herança e favorecer a composição como explicação de que herança força a classe filha a conhecer o comportamento da classe mãe, o que é visto como quebra de encapsulamento. Outro aspecto interessante nesse capitulo é quando indica a favorecer a imutabilidade nas classes fazendo com que não tenhamos problemas como a &nbsp;perca de referencia dos objetos.

No capitulo 4 destaco como o livro trata e ensina a obter um baixo acoplamento e uma alta coesão utilizando&nbsp;técnicas&nbsp;de separação de responsabilidades, interessante&nbsp;também&nbsp;como defendem o uso de um&nbsp;Framework&nbsp;para injeção de&nbsp;dependências&nbsp;e inversão de controle, entre eles temos o Spring Framework, mas no JEE6 já temos a implementação do CDI - Context and Dependency Injection&nbsp;embutida&nbsp;na plataforma. O capitulo faz alusão aos Singletons &nbsp;e como caiu em desuso chegando a ser considerado um anti-pattern &nbsp;por possuir uma instancia unica, ele faz com que classes que precisem do acesso global de um singleton tenha um alto acoplamento.

O capitulo 6 explica a diferença entre Tiers e Layers conceitos bastantes confundido pelos Desenvolvedores.
Layers são as separações lógicas de como organizar o código da aplicação de maneira a diminuir o acoplamento e facilitar as mudanças, o MVC é um exemplo dessa separação.
Tiers já trata de separações&nbsp;físicas&nbsp;entre partes do sistema exemplo: servidor web e o banco de dados.
Outro assunto interessante é sobre Desenvolvimento Web MVC e qual tipo de abordagem devemos usar ao desenvolver um software Actions ou &nbsp;Componentes, fazendo uma analise&nbsp;também&nbsp;de frameworks Action-based (Struts2) e Component-based &nbsp;(Jsf).
Frameworks ORM&nbsp;também&nbsp;são muito abordados neste capitulo, mais precisamente o uso do Hibernate, explicando como tirar proveito de Caches de 1º e 2º&nbsp;níveis, diminuindo o acesso ao banco e ganhando performance.

Esses foram os tópicos abordados pelo livro que achei mais interessante compartilhar, mas vale ressaltar que o livro todo é bom, não tem um capitulo que não dê para tirar proveito e enriquecer seu conhecimento. Aconselho a quem não tem adquiri-lo, tenho certeza que terão uma outra visão quando forem desenvolver algum software, até porque é um livro de certa forma barato pelo quanto de valor ele ira agregar ao profissional que o tiver.

Endereço na Web do livro:&nbsp;http://www.arquiteturajava.com.br/