Componentes de Lógica

circle-info

Esta seção está atualmente em desenvolvimento. Volte em breve para documentação abrangente sobre logic components.

Logic components são pedaços de software que contêm o business logic da sua aplicação. Eles são organizados semanticamente por domínio ou funcionalidade e servem como a camada de orquestração entre controllers e adapters.

Propósito

Logic components:

  • Implementam regras de negócio e domain logic

  • Orquestram operações entre múltiplos adapters

  • Encapsulam fluxos de trabalho complexos

  • Permaneçam independentes de preocupações da camada de transporte (HTTP, WebSocket)

  • Podem ser testados unitariamente de forma completa sem dependências de I/O

Localização

Logic components DEVERIAM ser colocados sob o src/logic ou src/components diretório, organizados por domínio:

src/
└── logic/
    ├── users/
    ├── content/
    ├── permissions/
    └── notifications/

Características

1. Consumo de Adapters

Logic components são os consumidores primários de adapters. Eles usam adapters para interagir com recursos externos enquanto se concentram nas regras de negócio.

2. Regras de Negócio

Logic components aplicam regras de negócio e validação:

3. Orquestração de Workflow

Logic components coordenam operações complexas em múltiplas etapas:

Boas Práticas

1. Responsabilidade Única

Cada logic component deve focar em um domínio ou contexto limitado:

2. Injeção de Dependências

Sempre injete dependências através do parâmetro components:

3. Tratamento de Erros

Lance erros de domínio significativos que controllers possam capturar e tratar:

4. Business Logic Pura

Mantenha logic components livres de preocupações da camada de transporte:

Testando Logic Components

Logic components devem ser exaustivamente testados unitariamente. Veja a Testing Services (WKC) documentation para detalhes.

Em Breve

Esta seção será expandida com:

  • Exemplos detalhados de domain-driven logic components

  • Padrões para lidar com workflows complexos

  • Diretrizes para organizar large domain logic

  • Integração com event systems

  • Estratégias de caching

  • Padrões de gerenciamento de transações

Atualizado