まず、依存関係とカップリングを見て、やり過ぎてしまいがちです。複雑にしすぎないようにしてください。
その免責事項が邪魔にならないので、ここに私が提案するものがあります。
依存関係/結合管理には、実際には 3 つの異なるビューがあります。1) 物理構造 (つまり、アセンブリの依存関係) 2) 論理構造 (つまり、名前空間の依存関係) 3) 実装構造 (つまり、クラスの依存関係)
大規模なアプリの場合、少なくとも 3 つすべてを調べる必要がありますが、通常は優先順位を付けることができます。
クライアントにデプロイされたアプリの場合、1 番が非常に重要になる可能性があります (つまり、プラグインなどの場合)。企業内 (つまり asp.net) に展開されたアプリの場合、通常、項目 1 はそれほど重要ではありません (複数のアプリで再利用されるフレームワークを除く)。通常、#1 の複雑な構造のオーバーヘッドがかからないように、アプリ全体を簡単にデプロイできます。
項目 2 は、保守性の問題である傾向があります。レイヤーの境界と名前空間との関係を把握します (つまり、名前空間ごとに 1 つのレイヤーを実行しているか、論理レベルで異なる方法でパッケージ化されていますか)。場合によっては、論理的な依存関係の構造を調べることで、レイヤーの境界を強化するのにツールが役立つことがあります。
項目 3 は、クラスを適切に設計することです。すべての優れた開発者は、自分のクラスで適切な依存関係のみを引き継ぐように、かなりの努力を払う必要があります。これは言うは易く行うは難しであり、通常は時間をかけて習得する必要のあるスキルです。
質問の核心に少し近づくために、項目 1 は、VS ソリューションでプロジェクトがどのように配置されるかについてです。したがって、これは測定する項目ではありません。それは、最初にセットアップして実行するものです。項目 2 は、ビルド中にツールを使用してチェックし、開発者がルールに違反していないかどうかを確認するものです。それは実際には測定というよりチェックです。項目 3 は、実際に測定をよく検討したい項目です。大量のカップリングを持つコードベース内のクラスを見つけることは、今後の問題点になるでしょう。それらのクラスの品質を確保してください。また、このレベルで測定すると、コードベースが進化するにつれて、コードベースの品質 (全体) についてある程度の洞察を得ることができます。さらに、誰かが本当に不潔なコードをあなたのコードベースにチェックインした場合、危険信号を発する可能性があります。
したがって、優先順位を付けたい場合は、#1 と #2 をざっと見てください。彼らがどのように見えるべきかを知ってください。しかし、ほとんどのアプリでは、項目 #3 に最も時間がかかるはずです。
もちろん、この回答には巨大なフレームワーク (.NET BCL など) は含まれていません。それらの赤ちゃんは#1に非常に注意を払う必要があります. :-)
そうしないと、次のような問題が発生し
ます。 asp
フレームワークが GUI ライブラリに依存するため、Windows Server 2008 の GUI なしのインストールで .NET を実行できない場合...
最後に 1 つ。適切な依存関係/カップリング管理の背後にある原則に精通していることを確認してください。ここで素敵なリストを見つけることができます:
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod