34. O Capítulo Perdido
Simon Brown: o diabo está nos detalhes de implementação.
Resumo
- Pacote por camada: web, serviço, repositório. Simples, mas não grita o domínio e permite atalhos.
- Pacote por funcionalidade: tudo de "pedidos" junto. Grita o domínio.
- Portas e adaptadores: domínio dentro, infraestrutura fora (Hexagonal). Interfaces no domínio.
- Pacote por componente: serviço + repositório juntos, só a interface pública exposta. Controllers usam o componente.
- Use modificadores de acesso (não deixe tudo
public) e o compilador para impor a arquitetura.
Perguntas-chave
responda de cabeça, depois abraQuais as quatro formas de organizar código?
Por camada, por funcionalidade, portas e adaptadores, por componente.
Qual o problema de tudo ser public?
Qualquer classe acessa qualquer outra; a arquitetura vira só intenção, sem imposição pelo compilador.
O que é pacote por componente?
Agrupa lógica de negócio e acesso a dados de um componente, expondo só uma interface pública.
Exercícios de fixação
0/5 respondidas1.
Um controller chama diretamente o repositório, pulando o serviço, porque todas as classes são
public. Que solução Simon Brown propõe?2.
Qual organização agrupa todo o código de "pedidos" em um único pacote?
3.
Em portas e adaptadores, onde ficam as interfaces de repositório?
4.
O que caracteriza o pacote por componente?
5.
Qual a mensagem principal do capítulo?