Skip to content

Связанность с вендором (Vendor Coupling)

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

Выявляет модули, которые слишком тесно связаны с конкретной внешней библиотекой или фреймворком.

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

Если вы решите сменить библиотеку в будущем, вам придется менять код во многих местах. Это также усложняет тестирование, так как приходится повсеместно создавать моки для внешней библиотеки.

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

Используйте паттерн Адаптер (Adapter). Создайте интерфейс в вашей доменной области и реализуйте его с использованием внешней библиотеки. Остальная часть вашего кода должна зависеть только от вашего интерфейса.

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

yaml
rules:
  vendor_coupling:
    severity: medium
    max_files_per_package: 10
    ignore_packages:
      - 'react'
      - 'lodash'

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

  • max_files_per_package: 10 - максимальное количество файлов, использующих один пакет
  • ignore_packages: ['react', 'lodash'] - список пакетов, которые следует игнорировать при проверке

Released under the MIT License.