Ruby的自动代码质量工具?
我真正想念Java的一件事是对工具的支持。 FindBugs,Checkstyle和PMD是代码质量指标和自动错误检查的三位一体。
是否有任何东西可以检查简单的错误和/或者样式是否违反Ruby代码?如果我可以将其适应诸如Rails之类的框架,以便遵循Rails惯用语,则可以加分。
解决方案
回答
灰尘看起来可以找到未使用和无用的代码,看起来很适合需求。
我不知道其他任何此类工具。
与使用Java相比,用ruby解决这个问题要困难得多,我们会注意到所有这些Java工具都将自己称为使用"静态分析"代码。
红宝石代码的静态分析通常是不可能的,因为我们无法分析任何静态信息(方法通常在运行时创建,依此类推)
无论如何,红宝石不需要其中的某些东西,因为该语言内置了它们。
例如,我们不需要编码标准来强制类都是" NamedLikeThis",因为如果不是,则该代码将不起作用。
P.S.我必须添加标准的免责声明,即这些工具通常可能有点麻烦。我们可以花一整天的时间使代码遵循该工具的预期,并最终导致比我们开始时更多的错误。
恕我直言,最好的解决方案是流畅地编写代码,以便我们更轻松地阅读。静态分析不能像人类阅读代码那样清楚地说明其意图。能够做到这一点的地方是,红宝石比许多其他语言要光年。我个人建议我们将精力花在学习如何更流畅地写作上,以及比花一些时间在静态分析上来教育团队。
回答
我最近开始为Ruby寻找类似的东西。到目前为止,我遇到的是:
- 斋黑郎
- 鲁迪
- 鞭打
这些可能是起点。不幸的是,我还没有使用这三个中的任何一个来提供好的意见。
回答
Saikuro和Flog可以很好地了解代码复杂性的基本概念。我们也可以使用rcov之类的工具来查看测试覆盖率。
有一个用于Rails项目的插件,它将所有这些指标组合到一个单独的rake任务中。它称为metric_fu。
回答
当被问到时,我没有看到这个问题,但是我写的一篇博客文章也可能会有所帮助。在其中,我涵盖了一堆Ruby工具,尤其涵盖了4个代码质量工具...
- 鲁迪
- 灰尘
- 鞭打
- 斋黑郎
还可能值得看看Towelie和Flay
http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/
现在,我们将许多工具组合到了唯一的称为Caliper的Ruby代码质量和指标监视工具中。这可能很适合需求。它跟踪项目生命周期内的各种质量指标。
卡尺可改善Ruby代码
回答
另一个不错的工具,尽管在作者看来是早期阶段,但它是reek:
http://reek.rubyforge.org/
reek当前包括以下代码气味的非常幼稚的检查:
- 长方法
- 大班
- 功能羡慕
- 非交流名称
- 长参数列表
- 实用功能
- 嵌套迭代器
- 控制对
- 复制
- 项目清单
我个人认为它仍然有太多的误报,但是仅查看一些代码中的输出有助于我重新考虑有关代码样式和体系结构的一些决策。
回答
也有出色的。我还没有尝试过,但是看起来也很有希望。