Introdução à Arquitetura e Design de Software
Uma visão sobre a plataforma Java
Paulo Silveira, Guilherme Silveira, Sérgio Lopes, Guilherme Moreira, Nico Steppat, Fabio KungConteúdo
Neste livro, os autores, conhecidos especialistas da área, apresentam muitos tópicos que aparecem com frequência na plataforma Java, incluindo desde modelagem e design das classes, até detalhes importantes das tecnologias mais utilizadas.
Sempre com uma visão técnica e prática capaz de elucidar muitas questões enfrentadas tanto pelo profissional iniciante quanto por aquele que está adquirindo mais experiência na plataforma.
Os e-books da Casa do Código não possuem DRM. Compre agora e baixe o PDF, epub e mobi e leia no dispositivo que quiser.
Sumário
- 1 - A plataforma Java
- 1.1 - Java como plataforma, além da linguagem
- 1.2 - Especificações ajudam ou atrapalham?
- 1.3 - Use a linguagem certa para cada problema
- 2 - Java Virtual Machine
- 2.1 - Princípios de garbage collection
- 2.2 - Não dependa do gerenciamento de memória
- 2.3 - JIT Compiler: compilação em tempo de execução
- 2.4 - Carregamento de classes e classloader hell
- 3 - Tópicos de Orientação a Objetos
- 3.1 - Programe voltado à interface, não à implementação
- 3.2 - Componha comportamentos
- 3.3 - Evite herança, favoreça composição
- 3.4 - Favoreça imutabilidade e simplicidade
- 3.5 - Cuidado com o modelo anêmico
- 3.6 - Considere Domain-Driven Design
- 4 - Separação de responsabilidades
- 4.1 - Obtenha baixo acoplamento e alta coesão
- 4.2 - Gerencie suas dependências através de injeção
- 4.3 - Considere usar um framework de Injeção de Dependências
- 4.4 - Fábricas e o mito do baixo acoplamento
- 4.5 - Proxies dinâmicas e geração de bytecodes
- 5 - Testes e automação
- 5.1 - Testes de sistema e aceitação
- 5.2 - Teste de unidade, TDD e design de código
- 5.3 - Testando a integração entre sistemas
- 5.4 - Feedback através de integração contínua
- 6 - Decisões arquiteturais
- 6.1 - Dividindo em camadas: tiers e layers
- 6.2 - Desenvolvimento Web MVC: Actions ou Componentes?
- 6.3 - Domine sua ferramenta de mapeamento objeto relacional
- 6.4 - Distribuição de objetos
- 6.5 - Comunicação assíncrona
- 6.6 - Arquitetura contemporânea e o Cloud
- 7 - Integração de sistemas na Web e REST
- 7.1 - Princípios de integração de sistemas na Web
- 7.2 - Padronizações, contratos rígidos e SOAP
- 7.3 - Evite quebrar compatibilidade em seus serviços
- 7.4 - Princípios do SOA
- 7.5 - REST: arquitetura distribuída baseada em hipermídia