ハブ依存 (Hub Dependency)
ID: hub_dependency | 重要度: Medium (デフォルト)
プロジェクト内のあまりに多くのファイルからインポートされている外部パッケージを特定し、単一障害点(single point of failure)を作成します。
なぜこれが「不吉な臭い」なのか
プロジェクトが単一の外部ライブラリに過度に依存している場合、そのライブラリを置換またはアップグレードすることが困難になります。また、インフラストラクチャの詳細がアプリケーションロジックに漏洩している可能性を示しています。
設定
yaml
rules:
hub_dependency:
severity: medium
min_dependants: 20
ignore_packages:
- 'react'
- 'lodash'
- 'typescript'オプション
min_dependants(デフォルト: 20): この不吉な臭いをトリガーするためにパッケージをインポートする必要があるファイルの最小数。ignore_packages: 無視するパッケージ名またはglobパターンのリスト。
修正方法
パッケージがこれほど広く使用されている理由を特定してください。lodashのようなユーティリティライブラリの場合、本当にすべてのインポートが必要か、ネイティブ言語機能を使用できるかを検討してください。インフラストラクチャライブラリの場合は、Adapter パターンを使用して依存関係を分離してください。