Módulo Dios
ID: god_module | Severidad: High (default)
Un "Módulo Dios" (God Module) es un archivo que ha crecido demasiado y ha asumido demasiadas responsabilidades.
Por qué esto es un problema
- Viola el Principio de Responsabilidad Única: El módulo hace demasiadas cosas.
- Conflictos de Fusión: Los cambios frecuentes de diferentes desarrolladores provocan conflictos constantes.
- Fragilidad: Los cambios en una parte del módulo pueden romper inesperadamente otra parte.
- Difícil de Probar: Requiere una configuración compleja para probar varias funcionalidades no relacionadas.
Criterios de Detección
archlint identifica los Módulos Dios basándose en:
- Fan-in: Número de otros módulos que dependen de él.
- Fan-out: Número de módulos de los que depende.
- Churn: Frecuencia de cambios en git.
- Lines of Code: Tamaño total del archivo.
Cómo solucionar
- Identificar Responsabilidades: Enumere todas las diferentes tareas que realiza el módulo.
- Extraer Módulos: Divida el archivo en módulos más pequeños y enfocados.
- Patrón de Fachada: Si el módulo actúa como coordinador, mantenga solo la lógica de coordinación y delegue el trabajo a los submódulos.
Configuración
yaml
rules:
god_module:
severity: high
fan_in: 15
fan_out: 15
churn: 20Regla ESLint
Este detector está disponible como una regla ESLint para recibir retroalimentación en tiempo real en tu editor.
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-god-modules': 'warn',
},
},
];Consulta Integración con ESLint para instrucciones de configuración.