Arquitetura selecionada
Layered
A aplicação é dividida por tipo de responsabilidade: apresentação, serviços, modelos, estado e infraestrutura. É uma arquitetura familiar e direta para projetos menores ou equipes em formação.
Estrutura de pastas
Navegue pelos arquivos para ver como a arquitetura aparece no código.
@Component({
selector: 'app-table',
templateUrl: './table.component.html',
})
export class TableComponent {
rows = input.required<Customer[]>();
}Prós
- Muito simples de entender no início do projeto.
- Funciona bem para aplicações pequenas e médias.
- Ajuda quem está aprendendo a separar responsabilidades.
Contras
- Pastas podem ficar grandes e genéricas com o crescimento.
- Uma mudança de feature costuma exigir edição em várias camadas.
- Pode esconder os limites reais do negócio.
Quando usar
- Projetos pequenos, protótipos e MVPs.
- Aplicações CRUD com poucas regras de negócio.
- Times que precisam de uma estrutura previsível e simples.
Exemplo real
Um painel administrativo interno com páginas, componentes reutilizáveis e serviços HTTP.
Cenário prático
Uma tela de clientes usa `pages/customers.page.ts`, componentes genéricos de tabela em `components` e chamadas HTTP centralizadas em `services/customer.service.ts`.
Como implementar
- Separe pastas por tipo técnico: `pages`, `components`, `services`, `models` e `store`.
- Mantenha componentes visuais sem regras de negócio complexas.
- Centralize integrações externas em serviços para evitar chamadas HTTP espalhadas pela UI.
Cuidado comum
Com o crescimento, pastas como `components` e `services` podem virar depósitos enormes sem contexto de negócio.