Camadas
A configuração de camadas permite definir níveis arquiteturais do seu projeto e impor regras de dependência entre eles.
Definindo Camadas
As camadas são configuradas dentro da regra layer_violation. Cada definição de camada consiste em:
name: Nome único da camada.path(oupaths): Padrão glob identificando os arquivos nesta camada.allowed_imports(oucan_import): Lista de nomes de camadas que esta camada tem permissão para importar.
Exemplo: Arquitetura Limpa (Clean Architecture)
yaml
rules:
layer_violation:
severity: high
layers:
- name: domain
path: '**/domain/**'
allowed_imports: [] # A camada Domain não deve depender de nada
- name: application
path: '**/application/**'
allowed_imports:
- domain
- name: infrastructure
path: '**/infrastructure/**'
allowed_imports:
- domain
- application
- name: presentation
path: '**/presentation/**'
allowed_imports:
- domain
- applicationComo Funciona
Quando o detector layer_violation está ativado:
- Ele mapeia cada arquivo no seu projeto para uma camada específica com base no padrão
path. - Se um arquivo corresponder a vários padrões, o mais específico (padrão mais longo) será escolhido.
- A ferramenta verifica cada importação. Se um arquivo na camada
Aimportar um arquivo na camadaB, masBnão estiver na listaallowed_importsda camadaA, uma violação será relatada.