Pat*_*ins 5 .net c# code-analysis
从昨天开始,我正在分析我们的一个项目Ndepend(大部分功能都是免费的)以及我使用它的更多,而且我对这类软件(代码分析软件)的真正价值有所怀疑.
让我解释一下,系统根据Rank每个指标构建一个关于系统和类的健康状况的报告.我认为这是一个很好的起点进行修改,但大多数顶级结果都在这里,因为它们在类中有超过100行(我们有大标题,我们确实使用VS注释样式)所以这不是什么大问题.. .传入耦合级别(CA)的数量总是太高,这对于我们经常使用的界面来说几乎是真的...所以此刻我没有看到错误,但NDepend似乎不喜欢它(如果你有改进建议,告诉我,因为我认为没有必要).对于我的大多数接口都太高的儿童数量,这个名为"NOC"的度量标准是一样的...
目前,唯一非常有用的指标是Cyclomatic Complexity ......
我的问题是:你觉得用NDepend这样的自动代码分析器分析代码是否值得?如果是,那么如何过滤我提到的并不能真正显示系统真实健康状况的所有信息?
实际上指标只是 NDepend 的一项功能,您是否尝试过使用 VisualNDepend 来比报告更深入地分析您的项目?通过阅读您的评论,我几乎可以肯定您没有使用 NDepend UI(独立或集成在 Visual Studio 中),这是过滤有关代码库的数据的最佳方式。
我是 NDepend 的开发人员之一,我们经常使用它来分析我们自己的代码。基本上,我们使用 LINQ 查询上的代码规则 (CQLinq)编写自己的质量规则。这些规则自动确保我们的设计不会出现回归。您可以在这里找到大约200 条默认代码规则的列表。
以下是 NDepend 的一些独特功能,与代码指标无关:
编写 CQLinq 规则以确保我们没有架构缺陷,例如组件之间的依赖循环、直接使用 DB 的 UI或与业务对象纠缠在一起的 DB。
确保我们的测试代码覆盖率没有问题(就像我们使用 CQLinq 规则确保如果一个类应该 100% 覆盖,那么它将在未来保持 100% 覆盖)
强制执行无副作用的代码(不可变类/纯方法)
在发布新版本之前,可以使用对自上次版本以来的代码审查更改进行比较 2 分析的功能。更具体地说,我喜欢使用 NDepend 来了解自上次版本以来添加和重构了哪些方法,并且测试并未 100% 覆盖。
为所有成员和类型提供最佳封装(例如知道哪些内部方法可以声明为 private)。这也与NDepend 也支持的死代码检测有关。
有关 NDepend 功能的完整列表,请参阅此处。
归档时间: |
|
查看次数: |
1034 次 |
最近记录: |