Skip to content

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

DetectorIDDescripciónPor defecto
Dependencias CíclicascyclesDependencias circulares entre archivos
Ciclos de Tiposcircular_type_depsDependencias circulares solo de tipos
Ciclos de Paquetespackage_cyclesDependencias cíclicas entre paquetes
Violación de Capaslayer_violationViolaciones de las capas arquitectónicas definidas
Violación de SDPsdp_violationViolaciones del Principio de Dependencias Estables

Diseño de Módulos y Clases

DetectorIDDescripciónPor defecto
Módulo Diosgod_moduleMódulos con demasiadas responsabilidades
Módulo Hubhub_moduleMódulos "hub" altamente conectados
Baja CohesiónlcomClases con baja cohesión interna (LCOM4)
Alto Acoplamientohigh_couplingMódulos con demasiadas dependencias
Módulo Dispersomodule_cohesionFuncionalidad dispersa en demasiados archivos
Envidia de Funcionalidadfeature_envyMétodos que usan más otra clase que la suya propia

Calidad del Código y Organización

DetectorIDDescripciónPor defecto
Código Muertodead_codeExportaciones no utilizadas
Símbolos Muertosdead_symbolsFunciones y variables locales no utilizadas
Tipos Huérfanosorphan_typesTipos no conectados a la base de código
Abuso de Barrelbarrel_fileArchivos barrel grandes que causan acoplamiento
Obsesión por Primitivosprimitive_obsessionUso excesivo de primitivos en lugar de tipos de dominio

Complejidad y Tamaño

DetectorIDDescripciónPor defecto
Alta ComplejidadcomplexityFunciones con alta complejidad ciclomática
Anidamiento Profundodeep_nestingBloques de código profundamente anidados
Muchos Parámetroslong_paramsFunciones con demasiados parámetros
Archivo Grandelarge_fileArchivos fuente que son demasiado grandes

Patrones de Cambio

DetectorIDDescripciónPor defecto
Cirugía de Escopetashotgun_surgeryCambios que requieren modificación en muchos archivos
Interfaz Inestableunstable_interfaceInterfaces públicas que cambian frecuentemente

Ejecución y Seguridad

DetectorIDDescripciónPor defecto
Fuga de Pruebastest_leakageEl código de prueba se filtra a producción
Acoplamiento con Proveedorvendor_couplingAcoplamiento estrecho con librerías externas
Dependencia Hubhub_dependencyDependencia excesiva de paquetes externos
Importación con Efecto Secundarioside_effect_importImportaciones que activan efectos secundarios
Estado Mutable Compartidoshared_stateVariables mutables exportadas

Métricas Arquitectónicas

DetectorIDDescripciónPor defecto
Violación de AbstractezabstractnessZonas de Dolor/Inutilidad (métrica I+A)
Configuración Dispersascattered_configConfiguración dispersa en muchos archivos
Clon de Códigocode_cloneCódigo duplicado en el proyecto

Released under the MIT License.