Voltar para lista

13 de 13 visíveis

Arquitetura selecionada

Monorepo

O monorepo centraliza apps, pacotes compartilhados e ferramentas. Ele favorece consistência, reaproveitamento e mudanças coordenadas entre produtos relacionados.

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

Monorepo

Caminhoapps/admin/src/app/app.routes.ts

export const routes = [
  {
    path: 'customers',
    loadChildren: () => import('@acme/customer-feature'),
  },
];

Prós

  • Facilita compartilhar design system, tipos e utilitários.
  • Permite refatorações coordenadas entre apps.
  • Padroniza lint, build, testes e versionamento.

Contras

  • Builds e permissões podem ficar complexos sem boas ferramentas.
  • Mudanças globais impactam muitos times.
  • Exige governança para evitar acoplamento excessivo.

Quando usar

  • Organizações com múltiplos frontends relacionados.
  • Produtos que compartilham UI, autenticação, modelos ou SDKs.
  • Times que usam ferramentas como Nx, Turborepo ou workspaces.

Exemplo real

Uma empresa SaaS com portal do cliente, admin interno, documentação e pacote de componentes.

Cenário prático

O app `admin` e o app `storefront` consomem `libs/ui` para botões e tabelas, e `libs/data-access` para clientes HTTP compartilhados.

Como implementar

  • Separe aplicações em `apps` e bibliotecas reutilizáveis em `libs` ou `packages`.
  • Defina regras de dependência entre libs para evitar importações circulares.
  • Use cache de build e execução afetada com ferramentas como Nx, Turborepo ou workspaces.

Cuidado comum

Compartilhar código demais pode transformar o monorepo em uma aplicação acoplada com vários nomes diferentes.