Skip to content

ベンダー結合 (Vendor Coupling)

ID: vendor_coupling | 重要度: Medium (default)

特定の外部ライブラリやフレームワークに過度に密結合しているモジュールを特定します。

なぜこれが「不吉な臭い」なのか

将来的にライブラリを切り替えることを決定した場合、多くの場所でコードを変更する必要があります。また、あらゆる場所で外部ライブラリをモック化する必要があるため、テストがより困難になります。

修正方法

Adapter パターンを使用してください。ドメイン内にインターフェースを作成し、外部ライブラリを使用してそれを実装します。残りのコードは、作成したインターフェースにのみ依存するようにします。

設定

yaml
rules:
  vendor_coupling:
    severity: medium
    max_files_per_package: 10
    ignore_packages:
      - 'lodash'
      - 'rxjs'
      - '@nestjs/*'

オプション

  • max_files_per_package(デフォルト: 10): 不吉な臭いが報告される前に、特定のパッケージをインポートできるファイルの最大数。
  • ignore_packages: 無視するパッケージ名またはglobパターンのリスト。

Released under the MIT License.