ベンダー結合 (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パターンのリスト。