Voltar para lista

13 de 13 visíveis

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.

Navegue pelos arquivos para ver como a arquitetura aparece no código.

Layered

Caminhosrc/app/components/table.component.ts

@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.