9

我最近安装了 Eclipse Metrics 插件,并为我们的一个项目导出了数据。

拥有这些漂亮的图表非常好,但我真的很想更深入地了解它们的含义。指标的定义只能告诉你它的真正含义。

有谁知道任何好的资源、书籍、网站等,可以帮助我更好地理解所有数据的含义,并了解如何在必要时改进代码?

我对传出耦合和圈复杂性等事物感兴趣,而不是代码行或每个方法的行数。

4

2 回答 2

4

我不认为代码指标(有时称为软件指标)在您可以改进的地方提供有价值的数据。

使用代码指标,很高兴看到您在一小时内编写了多少代码等,但除此之外,它们还告诉您编写代码的质量、文档和代码覆盖率。他们几乎是一周的尝试来衡量你无法真正衡量的地方。

代码指标还区分解决更难问题的程序员,因为他们显然设法减少了代码。然而,他们解决了难题,一个初级程序员编写了大量的垃圾代码看起来不错。

另一个使用指标的例子是非常流行的Ohloh。他们使用指标为开源项目贴上价格标签(使用行数等),这本身就是一种有缺陷的尝试——正如你可以想象的那样。

说了这么多,维基百科条目提供了一些关于该主题的整体见解,很抱歉没有用一个非常棒的网站或书籍以更支持的方式回答你的问题,但我敢打赌你明白我不是一个超级粉丝。:)

可以用来帮助您改进的方法是持续集成并在代码、文档等方面遵守某种标准。这就是你可以改进的方法。指标只是会议的糖果——“看起来我们已经编码了那么多”。

更新

好的,我的观点是传出耦合甚至圈复杂度都可能表明有问题——但不一定是错的。它可以作为重构类的指标,但没有经验法则可以告诉您何时重构。

恕我直言,500 多行代码、重构或DRY 主体等规则在大多数情况下更适用。有时就这么简单。

我给了你这么多,因为圈复杂度被绘制成流程图,它可以让你大开眼界。但同样,请谨慎使用。

于 2008-10-01T00:47:23.647 回答
1

在我看来,指标是在代码库中找到痛点的好方法。它们对于向您的经理展示为什么您应该花时间改进它也非常有用。

这是我写的一篇文章:http: //blog.jorgef.net/2011/12/metrics-in-brownfield-applications.html

我希望它有帮助

于 2011-12-15T05:27:22.300 回答