Capas
La configuración de capas le permite definir niveles arquitectónicos en su proyecto y hacer cumplir las reglas de dependencia entre ellos.
Definición de Capas
Las capas se configuran dentro de la regla layer_violation. Cada definición de capa consiste en:
name: Nombre único de la capa.path(opaths): Patrón glob que identifica los archivos en esta capa.allowed_imports(ocan_import): Lista de nombres de capas que esta capa tiene permitido importar.
Ejemplo: Arquitectura Limpia (Clean Architecture)
yaml
rules:
layer_violation:
severity: high
layers:
- name: domain
path: '**/domain/**'
allowed_imports: [] # La capa domain no debe 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
- applicationCómo Funciona
Cuando el detector layer_violation está habilitado:
- Mapea cada archivo de su proyecto a una capa específica basándose en el patrón
path. - Si un archivo coincide con varios patrones, se elige el más específico (el patrón más largo).
- La herramienta verifica cada importación. Si un archivo en la capa
Aimporta un archivo en la capaB, peroBno está en la listaallowed_importsde la capaA, se informa de una violación.