【发布时间】:2010-09-14 09:51:11
【问题描述】:
我最近安装了 Eclipse Metrics 插件并为我们的一个项目导出了数据。
拥有这些漂亮的图表非常好,但我真的很想更深入地了解它们的含义。指标的定义只能告诉您它的真正含义。
有谁知道任何好的资源、书籍、网站等,可以帮助我更好地理解所有数据的含义,并了解如何在必要时改进代码?
我对传出耦合和圈复杂度等事物感兴趣,而不是代码行数或每个方法的行数。
【问题讨论】:
标签: code-analysis metrics
我最近安装了 Eclipse Metrics 插件并为我们的一个项目导出了数据。
拥有这些漂亮的图表非常好,但我真的很想更深入地了解它们的含义。指标的定义只能告诉您它的真正含义。
有谁知道任何好的资源、书籍、网站等,可以帮助我更好地理解所有数据的含义,并了解如何在必要时改进代码?
我对传出耦合和圈复杂度等事物感兴趣,而不是代码行数或每个方法的行数。
【问题讨论】:
标签: code-analysis metrics
在我看来,指标是在代码库中找到痛点的绝佳方式。它们对于向您的经理展示为什么您应该花时间改进它也非常有用。
这是我写的一篇关于它的帖子:http://blog.jorgef.net/2011/12/metrics-in-brownfield-applications.html
希望对你有帮助
【讨论】:
我不认为代码指标(有时称为software metrics)在您可以改进的地方提供有价值的数据。
通过代码指标,很高兴看到您在一小时内编写了多少代码等,但除此之外,它们还可以告诉您编写代码的质量、文档和代码覆盖率。他们几乎需要一周的时间来衡量你无法真正衡量的地方。
代码指标也会区分解决更难问题的程序员,因为他们显然设法减少了代码。然而,他们解决了难题,一个初级程序员编写了大量废代码看起来不错。
另一个使用指标的例子是非常流行的Ohloh。他们使用指标为开源项目贴上价格标签(使用行数等),这本身就是一种尝试,有缺陷的地狱 - 正如您可以想象的那样。
说了这么多维基百科条目提供了有关该主题的一些整体见解,很抱歉没有用一个非常棒的网站或书籍以更支持的方式回答你的问题,但我敢打赌你明白我不是一个大人物扇子。 :)
在代码、文档等方面可以采用持续集成和遵守某种标准来帮助您改进。这就是你可以改进的方法。指标只是会议的亮点 - “看起来我们已经编写了这么多代码”。
更新
好的,我的观点是传出耦合甚至圈复杂度可能表明有问题 - 但不一定是错误的。它可以作为重构类的指标,但没有经验法则可以告诉您何时。
恕我直言,500 多行代码、重构或DRY principal 等规则在大多数情况下更适用。有时就是这么简单。
我给你的信息是,由于圈复杂度被绘制成流程图,它可以让你大开眼界。但同样,请谨慎使用。
【讨论】: