Skip to content

Высокая связанность

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

Высокая связанность (High coupling) возникает, когда модуль зависит от слишком большого количества других модулей (высокий Fan-out).

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

  • Жесткость: Изменение в любой из зависимостей может потребовать изменения в этом модуле.
  • Хрупкость: Модуль с большей вероятностью сломается при изменении любой из его зависимостей.
  • Сложность тестирования: Требуется много моков для изоляции модуля при модульном тестировании.

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

  1. Извлеките обязанности: Если у модуля слишком много зависимостей, скорее всего, он делает слишком много.
  2. Используйте абстракции: Зависьте от интерфейса или фасада вместо множества конкретных реализаций.

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

yaml
rules:
  high_coupling:
    severity: medium
    max_cbo: 20
    exclude: []

ESLint правило

Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.

javascript
// eslint.config.js
export default [
  {
    rules: {
      '@archlinter/no-high-coupling': 'warn',
    },
  },
];

Смотрите Интеграция с ESLint для инструкций по настройке.

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

  • max_cbo: 20 - максимальное количество зависимостей модуля (Coupling Between Objects)
  • exclude: [] - паттерны файлов, которые исключаются из проверки

Released under the MIT License.