Skip to content

高い結合度

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

高い結合度(High coupling)は、モジュールが他の多くのモジュールに依存している場合に発生します(高いファンアウト)。

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

  • 硬直性: 依存関係のいずれかが変更されると、このモジュールも変更が必要になる可能性があります。
  • 脆弱性: 依存関係のいずれかが変更されたときに、このモジュールが壊れる可能性が高くなります。
  • テストの難しさ: ユニットテストで隔離するために、多くのモックが必要になります。

修正方法

  1. 責任の抽出: モジュールの依存関係が多すぎる場合、そのモジュールは多くのことを行いすぎている可能性があります。
  2. 抽象化の使用: 多くの具体的な実装ではなく、インターフェースやファサードに依存するようにします。

設定

yaml
rules:
  high_coupling:
    severity: medium
    max_cbo: 20

ESLint ルール

このディテクターは、エディター内でリアルタイムのフィードバックを提供する ESLint ルールとして利用可能です。

javascript
// eslint.config.js
export default [
  {
    rules: {
      '@archlinter/no-high-coupling': 'warn',
    },
  },
];

セットアップ手順については ESLint Integration を参照してください。

Released under the MIT License.