Biblioteca de Engenharia para IA
Prévia Markdown

Guia de Referência: Clean Architecture (Robert C. Martin)

Visualização renderizada do arquivo livros/05-arquitetura-limpa.md. O conteúdo abaixo é o mesmo arquivo destinado a orientar a IA.

Guia de Referência: Clean Architecture (Robert C. Martin)

Este guia consolida os princípios, regras de dependência e limites arquiteturais propostos por Robert C. Martin ("Uncle Bob") no livro Arquitetura Limpa: O Guia do Artesão para Estrutura e Design de Software.


1. O Princípio Fundamental: A Regra de Dependência

"As dependências de código-fonte devem apontar apenas para dentro, na direção dos códigos de alto nível (políticas de negócio)."

Nada em um círculo interno pode saber algo sobre algo em um círculo externo. Nomes de formatos de dados, bancos de dados, frameworks ou UI declarados em um círculo externo não devem ser mencionados pelo código em um círculo interno.


2. As Camadas do Sistema

1ª Camada: Entidades (Entities / Domain Core)

2ª Camada: Casos de Uso (Use Cases / Application Business Rules)

3ª Camada: Adaptadores de Interface (Interface Adapters / Presenters / Controllers)

4ª Camada: Frameworks e Drivers (Frameworks & Drivers / Infrastructure)


3. Princípios de Design Componentizados (SOLID aplicado à Arquitetura)


4. Cruzando as Fronteiras (Polimorfismo e DTOs)

  1. Inversão de Controle: Quando um Caso de Uso precisa chamar o Banco de Dados (Infraestrutura), ele define uma Interface (Output Port) na camada de Caso de Uso. A camada de Infraestrutura implementa essa interface. Assim, o fluxo de controle vai para fora, mas a dependência de código aponta para dentro.
  2. Isolamento de Dados (DTOs): Os dados que cruzam os limites das camadas devem ser estruturas simples de dados (Data Transfer Objects). Nunca passe entidades de domínio ou registros/modelos de banco de dados diretos (como objetos ORM) através das fronteiras.

Diretrizes de Execução Estrutural

Ao criar ou reestruturar arquivos, garanta:

  1. Independência de Framework: O núcleo do software não deve depender de recursos de bibliotecas de terceiros.
  2. Testabilidade: As regras de negócio devem ser testáveis sem a presença de UI, Banco de Dados, Servidores Web ou qualquer elemento externo.
  3. Independência da UI: A UI pode mudar facilmente sem alterar o resto do sistema.
  4. Independência do Banco de Dados: Você pode trocar o mecanismo de persistência por outro sem tocar em uma única linha de regras de negócio.

5. Como Usar este Guia com IA


Roteiro de Uso Operacional com IA

  1. Contextualize o projeto: informe domínio, stack, arquitetura atual, restrições e objetivo da mudança.
  2. Selecione o recorte: diga qual princípio/capítulo deste guia deve orientar a tarefa; não aplique tudo ao mesmo tempo.
  3. Peça diagnóstico antes do código: a IA deve identificar sintomas, riscos, dependências e alternativas.
  4. Defina critérios de aceite: comportamento, testes, acessibilidade, performance, segurança ou operação conforme o tema.
  5. Implemente incrementalmente: mudanças pequenas, reversíveis e verificadas.
  6. Faça revisão final: peça à IA que confronte a solução com este guia e liste desvios deliberados.

Prompt de aplicação

Use este guia como referência técnica para a tarefa abaixo.
Não copie regras mecanicamente. Primeiro diagnostique o problema e selecione apenas os princípios aplicáveis.
Mostre: (1) diagnóstico, (2) decisão, (3) implementação proposta, (4) testes/verificações, (5) trade-offs e (6) checklist final.

Contexto: [DESCREVA o sistema, stack, estado atual e cenário da mudança]
Objetivo: [DESCREVA o resultado esperado e o comportamento que deve existir]
Restrições: [DESCREVA limites de escopo, compatibilidade, segurança, prazo e o que não pode mudar]

Como preencher os campos

Exemplo preenchido

Contexto: Aplicação web tem regras de cálculo dentro de controllers e objetos do ORM atravessando toda a aplicação.
Objetivo: Extrair um caso de uso de cálculo para o núcleo e definir portas/adaptadores para persistência sem alterar a experiência atual.
Restrições: O domínio não pode importar framework, ORM ou HTTP; migração incremental; manter API e esquema do banco nesta etapa.
/mind-map
Navegação contextual

Mapa gerado a partir dos títulos desta página. Clique em um ramo para abrir o expander correspondente e ir diretamente à seção.

progress_activity Gerando mapa…
Configurações

Aparência

Escolha como a biblioteca deve aparecer neste navegador.

Desenvolvimento

Informações da versão e autoria ficam disponíveis somente nesta área.