Низкая связность (LCOM4)
ID: lcom | Степень критичности: Средняя (по умолчанию)
Связность (cohesion) измеряет, насколько тесно связаны методы и поля класса. archlint использует метрику LCOM4 (Lack of Cohesion of Methods).
Почему это «запах»
- Нарушение SRP: Класс, скорее всего, выполняет две или более несвязанные задачи.
- Хрупкость: Изменение одной части класса может повлиять на несвязанные части.
- Сложность переиспользования: Вы не можете использовать одну часть класса, не подтягивая несвязанную логику.
Как исправить
- Extract Class: Разделите класс на два или более меньших класса, каждый из которых имеет одну зону ответственности.
- 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']- паттерны файлов, которые исключаются из проверки