1. Camadas (Layering)
Apresentação → Domínio → Fonte de dados. Dependência só para baixo.
Resumo
- Três camadas principais: Apresentação (UI, HTTP), Domínio (regras de negócio), Fonte de dados (banco, mensagens).
- Benefícios: entender uma camada isolada, substituir implementações, reduzir dependências, padronizar.
- Custos: mudanças em cascata (novo campo atravessa todas) e perda de desempenho por camadas extras.
- Regra: domínio e dados não dependem da apresentação. Teste: trocar a UI por linha de comando sem duplicar lógica.
- Onde rodar: o mais simples é tudo no servidor; cliente rico só quando a responsividade exigir.
Perguntas-chave
responda de cabeça, depois abraQuais são as três camadas principais?
Apresentação, Domínio e Fonte de dados.
Como saber se há lógica de domínio vazando para a apresentação?
Imagine adicionar uma interface totalmente diferente (linha de comando, API). Se for preciso duplicar lógica, ela está no lugar errado.
Qual a diferença entre layer e tier?
Layer é separação lógica do código. Tier sugere separação física em máquinas/processos.
Exercícios de fixação
0/5 respondidas1.
Um cálculo de desconto está dentro do código da página web. A empresa quer expor o mesmo cálculo em uma API REST. Qual o problema arquitetural?
2.
Qual direção de dependência entre camadas é correta?
3.
Qual é uma desvantagem de camadas citada por Fowler?
4.
Layer e tier são a mesma coisa?
5.
Segundo Fowler, onde é mais simples rodar as camadas de um sistema web?