Ruby的自动代码质量工具?

时间:2008-09-10 21:00:07

标签: ruby-on-rails ruby code-analysis

我真正想念Java的一件事是工具支持。 FindBugs,Checkstyle和PMD可实现三位一体的代码质量指标和自动错误检查。

是否有任何可以检查Ruby代码的简单错误和/或样式违规?如果我可以为Rails这样的框架调整它以便遵守Rails惯用语,则可以获得奖励。

9 个答案:

答案 0 :(得分:17)

我最近开始为Ruby寻找类似的东西。到目前为止我遇到了什么:

这些可能是开始的地方。不幸的是,我还没有使用这三个中的任何一个来提供好的意见。

答案 1 :(得分:7)

Saikuro和Flog可以很好地理解代码复杂性。您还可以使用rcov之类的工具来查看您的测试覆盖率 Rails项目有一个插件,它将所有这些指标组合成一个rake任务。它被称为metric_fu

答案 2 :(得分:6)

我最近发现并测试过的项目:

答案 3 :(得分:5)

您可能想要试用RuboCop。它是基于Ruby Style Guide的Ruby代码样式检查器。它保持相当活跃,它基于标准的Ruby工具(如ripper库)。它适用于Ruby 1.9和2.0,并且具有出色的Emacs集成。我希望你会发现它很有用!

答案 4 :(得分:3)

Dust看起来它可以帮助您找到未使用的和无用的代码,这看起来很适合您所追求的。

我不知道其他任何此类工具 这个问题在ruby中比在java中难以解决 - 你会注意到所有这些java工具都将自己标记为使用代码的“静态分析”。
静态分析ruby代码通常是不可能的,因为没有任何静态可以分析(方法通常在运行时创建等等)

无论如何,ruby中有些东西是不需要的,因为语言会将它们构建出来。 例如,您不需要编码标准来强制您的类都是NamedLikeThis,因为如果不是,代码将无效。

P.S。我添加标准免责声明,这些工具通常可能是一个红色的鲱鱼。您可以花一整天时间让代码遵循工具认为应该是的内容,最终会遇到比您开始时更多的错误。
恕我直言,最好的解决方案是流畅地编写代码,以便您可以更轻松地阅读它。任何数量的静态分析都不会像人类阅读代码一样好,它清楚地说明了它的意图。能够做到这一点的地方就是红宝石比许多其他语言领先几年。我个人会建议你的目标是学习如何更流利地写作,并教育你的团队这些事情,而不是花时间进行静态分析。

答案 5 :(得分:3)

另一个不错的工具,尽管根据作者的早期阶段是懊悔:

http://reek.rubyforge.org/

reek目前包含对以下代码气味的非常天真的检查:

  • 长方法
  • 大班
  • 功能羡慕
  • Uncommunicative Name
  • 长参数列表
  • 效用函数
  • 嵌套迭代器
  • 控制情侣
  • 复制
  • 列表项

就我个人而言,我认为它仍然有太多的误报,但只是看一下我的一些代码中的输出,这有助于我重新思考一些关于代码风格和架构的决定。

答案 6 :(得分:2)

Code Climate是一个SaaS工具,它通过git集成并自动“评分”您的代码。如果质量突然下降,它会通过各种渠道通知您。不错的用户界面。

答案 7 :(得分:1)

当被问到时我没有看到这个问题,但我做的博客文章也可能有所帮助。在其中我介绍了一堆Ruby工具,特别是4个代码质量工具......

  1. Roodi
  2. Saikuro
  3. 也许值得查看Towelie和Flay

    http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/

    现在,我们将许多工具组合到一个名为Caliper的唯一Ruby代码质量和指标监控工具中。这可能很适合您的需求。它跟踪项目生命周期中的各种质量指标。

    Caliper - improve your Ruby code

答案 8 :(得分:0)

还有excellent。我还没有尝试过,但它看起来也很有希望。