Skip to content

Низкая связность (LCOM4)

ID: lcom | Степень критичности: Средняя (по умолчанию)

Связность (cohesion) измеряет, насколько тесно связаны методы и поля класса. archlint использует метрику LCOM4 (Lack of Cohesion of Methods).

Почему это «запах»

  • Нарушение SRP: Класс, скорее всего, выполняет две или более несвязанные задачи.
  • Хрупкость: Изменение одной части класса может повлиять на несвязанные части.
  • Сложность переиспользования: Вы не можете использовать одну часть класса, не подтягивая несвязанную логику.

Как исправить

  1. Extract Class: Разделите класс на два или более меньших класса, каждый из которых имеет одну зону ответственности.
  2. Move Method: Переместите методы, которые не используют состояние класса, в более подходящее место (например, в утилитный модуль).

Конфигурация

yaml
rules:
  lcom:
    severity: medium
    max_lcom: 4
    min_methods: 3
    exclude: ['**/*.controller.ts']

Параметры по умолчанию

  • max_lcom: 4 - максимальное значение метрики LCOM4 (Lack of Cohesion of Methods)
  • min_methods: 3 - минимальное количество методов в классе для анализа
  • exclude: ['**/*.controller.ts'] - паттерны файлов, которые исключаются из проверки

Released under the MIT License.