web-dev-qa-db-ja.com

パッケージのもつれインデックスデータはSonarで何を示していますか?

プロジェクトで Sonar 分析を実行した後、7つの軸の1つに次のデータがあります(2番目の図を参照)。このデータからどのような情報をデコードできますか?また、このデータは下の図のどの軸に関係していますか?

enter image description here

enter image description here

20
Inquisitive

これは、パッケージとファイルの間に周期的な依存関係があることを意味します。

理想的には、依存関係を一方向に流す必要があります。これにより、変更を加えてその影響を予測できます。たとえば、「ユーザーインターフェイス」パッケージが「ビジネスロジック」パッケージに依存しているが、「ユーザーインターフェイス」パッケージには何も依存していない場合、そのパッケージの外部にあるものを壊すことなく、ユーザーインターフェイスに変更を加えることができます。周期的な依存関係とは、(たとえば)ユーザーインターフェイスパッケージがビジネスロジックパッケージに依存していることを意味しますが、ビジネスロジックパッケージもユーザーインターフェイスパッケージに依存しています。ここで、ユーザーインターフェイスを変更すると、ビジネスロジック層が破損する可能性があります。これは、ユーザーインターフェイスでまったく関係のないものに影響を与える可能性があります。

ソフトウェアを「階層化」し、依存関係をレイヤー間で一方向に流すというアイデアは、このもつれを取り除くように設計されています。

クラスをあるパッケージから別のパッケージに移動することで、このもつれを減らすことができます。

もつれは通常、アーキテクチャ/設計の問題です。

33
Neville Kuyt