Skip to content

Cirugía de Escopeta (Shotgun Surgery)

ID: shotgun_surgery | Severidad: Medium (default)

La Cirugía de Escopeta ocurre cuando un solo cambio en los requisitos te obliga a hacer muchos pequeños cambios en muchos módulos diferentes. archlint detecta esto analizando el historial de git para encontrar archivos que cambian frecuentemente juntos (alta frecuencia de co-cambio).

Por qué esto es un problema

  • Alto Costo de Mantenimiento: Cada funcionalidad o corrección de errores requiere tocar múltiples partes del sistema.
  • Propenso a Errores: Es fácil olvidar uno de los muchos cambios requeridos, lo que lleva a bugs.
  • Encapsulación Deficiente: Indica que una única responsabilidad está fragmentada a través de la base de código en lugar de estar encapsulada en un solo lugar.

Cómo corregir

  • Consolidar Responsabilidades: Usa Move Method o Move Field para reunir la lógica relacionada en un solo módulo.
  • Introduce Parameter Object: Si múltiples módulos requieren el mismo conjunto de datos, agrúpalos en un solo objeto.
  • Replace Data Value with Object: Si tienes muchos módulos manejando los mismos datos primitivos, encapsula esos datos y su comportamiento en una nueva clase.

Configuración

yaml
rules:
  shotgun_surgery:
    severity: medium

Released under the MIT License.