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.