我正在编写一份文档,分析大型代码库的质量和可维护性。作为本报告的一部分,我希望包括一个程序集对解决方案中另一个程序集的引用次数的计数。这将使您了解每个组件与另一个组件的紧密耦合程度。
Visual Studio 2015 Enterprise(或第 3 方插件)中是否有可以给我这个号码的工具?
到目前为止,我已经尝试过 Visual Studio 的 Code Map 工具,但这似乎只是生成带有箭头的可视化,然后我必须手动计数,而且这似乎只是类/结构级别,而不是每个引用的数量类/结构。
我正在编写一份文档,分析大型代码库的质量和可维护性。作为本报告的一部分,我希望包括一个程序集对解决方案中另一个程序集的引用次数的计数。这将使您了解每个组件与另一个组件的紧密耦合程度。
Visual Studio 2015 Enterprise(或第 3 方插件)中是否有可以给我这个号码的工具?
到目前为止,我已经尝试过 Visual Studio 的 Code Map 工具,但这似乎只是生成带有箭头的可视化,然后我必须手动计数,而且这似乎只是类/结构级别,而不是每个引用的数量类/结构。
NDepend ( http://www.ndepend.com/ ) 提供了这个功能。对于您描述的探索性质量分析类型,它在更一般的术语中也很有帮助。
为了扩展 Nicole 的答案,我测试了 NDepend 的试用,我相信我已经在他们所谓的“依赖矩阵”中找到了我正在寻找的数字。我对它的理解如下。
绿色数字是当前行中的程序集引用与当前列中的数字相关的程序集的次数的计数。蓝色数字是当前行中的程序集被与当前列中的数字相关的程序集引用的次数的计数。由于程序集不能对其自身进行外部引用,因此对角线上不能出现数字。
然而,我不明白为什么,例如,单元格 0, 4 中的数字是 93,但单元格 4, 0 中的数字是 52;这些数字不应该相等吗?程序集 0 仅被程序集 4 使用的次数与程序集 4 使用程序集 0 的次数相同 - 这些数字怎么可能不同?
更新:我观看了有关此工具的 PluralSight 视频,发现绿色框中的数字表示引用程序集中有多少方法引用了被引用程序集。相应蓝色框中的数字表示引用程序集中有多少方法正在被引用程序集使用。这些数字都不能准确地表示一个程序集对另一个程序集的调用次数(因为一个方法可能包含多个引用),但我相信它确实提供了足够的粒度,因为方法应该符合 SRP,因此方法中的所有引用都应该与单一行为有关。