高い結合度
ID: high_coupling | 重要度: Medium (default)
高い結合度(High coupling)は、モジュールが他の多くのモジュールに依存している場合に発生します(高いファンアウト)。
なぜこれが「不吉な臭い」なのか
- 硬直性: 依存関係のいずれかが変更されると、このモジュールも変更が必要になる可能性があります。
- 脆弱性: 依存関係のいずれかが変更されたときに、このモジュールが壊れる可能性が高くなります。
- テストの難しさ: ユニットテストで隔離するために、多くのモックが必要になります。
修正方法
- 責任の抽出: モジュールの依存関係が多すぎる場合、そのモジュールは多くのことを行いすぎている可能性があります。
- 抽象化の使用: 多くの具体的な実装ではなく、インターフェースやファサードに依存するようにします。
設定
yaml
rules:
high_coupling:
severity: medium
max_cbo: 20ESLint ルール
このディテクターは、エディター内でリアルタイムのフィードバックを提供する ESLint ルールとして利用可能です。
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-high-coupling': 'warn',
},
},
];セットアップ手順については ESLint Integration を参照してください。