【问题标题】:Ndepend and other automatic code analyser revelence?Ndepend和其他自动代码分析相关吗?
【发布时间】:2008-11-18 16:37:49
【问题描述】:

从昨天开始,我正在使用Ndepend 分析我们的一个项目(大部分功能免费),而且我正在使用它,而且我更怀疑这种软件的真正价值(代码分析软件)。

让我解释一下,系统通过对每个指标进行排名来构建关于系统和类的健康状况的报告。我认为这是进行修改的一个很好的起点,但大多数最佳结果都在这里,因为它们在类中有超过 100 行(我们有大标题,我们确实使用 VS cmets 样式)所以这没什么大不了的。 .比传入耦合级别(CA)的数量总是太高,这对于我们经常使用的接口来说几乎是非常正确的......所以此时我没有看到有什么问题,但 NDepend 似乎不喜欢它(如果您有改进建议,请告诉我,因为我认为没有必要)。对于我的大部分界面都太高的孩子数量的称为“NOC”的指标来说,这也是一样的......

目前,唯一非常有用的指标是圈复杂度...

我的问题是:你觉得用 NDepend 之类的自动代码分析器分析代码值得吗?如果是,您如何过滤我提到的所有不能真正显示系统真实运行状况的信息?

【问题讨论】:

  • 现在显然有点老了,但我认为你必须看看那些接口。大量儿童很可能突显了对单一责任原则的破坏。这反过来可能会对您的传入耦合产生影响。这反过来又会影响代码的可维护性(更高的传入耦合会在进行更改时导致更多的痛苦)。那么有用吗。恕我直言,是的。它只需要查看您的代码,看看您可以用它做什么以使其变得更好,并了解指标试图告诉您什么。

标签: c# .net code-analysis


【解决方案1】:

实际上指标只是 NDepend 的一项功能,您是否尝试使用 VisualNDepend 让您比报告更深入地分析您的项目?通过阅读您的评论,我几乎可以确定您没有使用 NDepend UI(独立或集成在 Visual Studio 中),这是过滤代码库数据的最佳方式。

我是 NDepend 的开发人员之一,我们经常使用它来分析我们自己的代码。基本上我们用Code Rules over LINQ Queries (CQLinq) 编写我们自己的质量规则。这些规则自动确保我们的设计没有回归。在这里您可以找到200 default code rules 周围的列表。

以下是 NDepend 的一些独特功能,与代码指标无关:

有关 NDepend 的完整功能列表,请参阅here

【讨论】:

  • 我用 VisualNDepend 玩了一点(2 小时)。我不是说产品做得不好,而是说矩阵......好吧,我的 LOG 模块具有高耦合......这很正常......比我看到持久立面和 BusinessObject 之间的高耦合......正常...
  • 所有那些“正常”的情况都在 NDepend(和其他带有度量的软件)中得到了强调,它们真的很有趣吗?这是我的问题。 +1 对于您的回答,我想知道意见和个人经验,但您还没有定罪我使用这样的工具;)
【解决方案2】:

我不一定认为 NDepend 在软件工程中的结果是“好”或“坏”,应用程序的设计方式总是有充分的理由。我认为它是一份报告,可能可以帮助我指出我的设计问题,但在决定一个方法是否需要重构或者它是否适合我的设计方式时,我有最终决定权。一般来说,不要太着迷于试图回答是否值得。肯定是这样,相反,我建议您仔细查看结果。这将帮助您从另一个角度看待您的设计,并且在某些情况下,您可能会决定您的设计方式最能实现您的应用程序目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多