Skip to content

ハブ依存 (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 パターンを使用して依存関係を分離してください。

Released under the MIT License.