Resumen de Detectores
archlint incluye más de 28 detectores integrados categorizados por el tipo de problema arquitectónico o de calidad de código que identifican.
Problemas de Dependencia
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Dependencias Cíclicas | cycles | Dependencias circulares entre archivos | ✅ |
| Ciclos de Tipos | circular_type_deps | Dependencias circulares solo de tipos | ❌ |
| Ciclos de Paquetes | package_cycles | Dependencias cíclicas entre paquetes | ❌ |
| Violación de Capas | layer_violation | Violaciones de las capas arquitectónicas definidas | ❌ |
| Violación de SDP | sdp_violation | Violaciones del Principio de Dependencias Estables | ❌ |
Diseño de Módulos y Clases
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Módulo Dios | god_module | Módulos con demasiadas responsabilidades | ✅ |
| Módulo Hub | hub_module | Módulos "hub" altamente conectados | ❌ |
| Baja Cohesión | lcom | Clases con baja cohesión interna (LCOM4) | ❌ |
| Alto Acoplamiento | high_coupling | Módulos con demasiadas dependencias | ❌ |
| Módulo Disperso | module_cohesion | Funcionalidad dispersa en demasiados archivos | ❌ |
| Envidia de Funcionalidad | feature_envy | Métodos que usan más otra clase que la suya propia | ❌ |
Calidad del Código y Organización
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Código Muerto | dead_code | Exportaciones no utilizadas | ✅ |
| Símbolos Muertos | dead_symbols | Funciones y variables locales no utilizadas | ✅ |
| Tipos Huérfanos | orphan_types | Tipos no conectados a la base de código | ✅ |
| Abuso de Barrel | barrel_file | Archivos barrel grandes que causan acoplamiento | ✅ |
| Obsesión por Primitivos | primitive_obsession | Uso excesivo de primitivos en lugar de tipos de dominio | ❌ |
Complejidad y Tamaño
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Alta Complejidad | complexity | Funciones con alta complejidad ciclomática | ✅ |
| Anidamiento Profundo | deep_nesting | Bloques de código profundamente anidados | ✅ |
| Muchos Parámetros | long_params | Funciones con demasiados parámetros | ✅ |
| Archivo Grande | large_file | Archivos fuente que son demasiado grandes | ✅ |
Patrones de Cambio
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Cirugía de Escopeta | shotgun_surgery | Cambios que requieren modificación en muchos archivos | ❌ |
| Interfaz Inestable | unstable_interface | Interfaces públicas que cambian frecuentemente | ❌ |
Ejecución y Seguridad
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Fuga de Pruebas | test_leakage | El código de prueba se filtra a producción | ❌ |
| Acoplamiento con Proveedor | vendor_coupling | Acoplamiento estrecho con librerías externas | ❌ |
| Dependencia Hub | hub_dependency | Dependencia excesiva de paquetes externos | ❌ |
| Importación con Efecto Secundario | side_effect_import | Importaciones que activan efectos secundarios | ✅ |
| Estado Mutable Compartido | shared_state | Variables mutables exportadas | ❌ |
Métricas Arquitectónicas
| Detector | ID | Descripción | Por defecto |
|---|---|---|---|
| Violación de Abstractez | abstractness | Zonas de Dolor/Inutilidad (métrica I+A) | ❌ |
| Configuración Dispersa | scattered_config | Configuración dispersa en muchos archivos | ❌ |
| Clon de Código | code_clone | Código duplicado en el proyecto | ✅ |