【问题标题】:Ruby source code analyzer (something like pylint)Ruby 源代码分析器(类似于 pylint)
【发布时间】:2008-11-13 08:53:20
【问题描述】:

Ruby 是否有类似pylint 的工具来分析源代码中的错误和简单的编码标准?

如果它可以与cruisecontrolrb 集成以进行持续集成,那就太好了。

还是每个人都编写了不需要源代码检查器的好测试!

【问题讨论】:

    标签: ruby code-analysis static-analysis


    【解决方案1】:

    我查看了一堆可用的 Ruby 工具

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

    webmat 提到了大多数工具,但如果您想了解更多信息,我会通过示例进行深入了解。

    我还强烈推荐使用 Metric-Fu,它可以让您在 gem/plugin 上安装 3 个更流行的工具,并且在构建时考虑了 Cruisecontrolrb 集成。

    创建者有一篇很棒的帖子,应该可以帮助您立即启动并运行。

    http://jakescruggs.blogspot.com/2008/04/dead-simple-rails-metrics-with-metricfu.html

    最近 Ruby 工具有很多活动,我认为这是一种成长和成熟的语言的好兆头。

    【讨论】:

    • 我也会好好看看 reek - silkandspinach.net/2008/09/23/… webmat 建议的。您会考虑将其包含在您为其他人提供的答案中吗?
    • 天哪!该工具综述看起来非常全面。我得去看看 :-) 谢谢分享。
    • 您的链接不再有效,是否已将它们更新到新博客
    • @sayth 我浏览了他们的网页并找到了新的永久链接。我更新了帖子。
    【解决方案2】:

    看看这些:

    • 在 Ruby Inside 上,an article presenting Towelie, Flay and Simian,查找代码重复的所有工具
    • reek:Ruby 的代码异味检测器
    • Roodi:检查 Ruby 代码的样式
    • flog:代码复杂度分析器
    • rcov:会给你一个C0(如果我没记错的话)代码覆盖率分析。但要小心。 100% 的覆盖率非常昂贵,并不意味着完美的代码。
    • heckle:以微妙的方式更改您的代码并运行您的测试套件以查看它是否捕获它。残酷:-)

    由于它们都是命令行工具,它们都可以简单地集成为 cc.rb 任务。只需抽出你的正则表达式技能来选择输出的重要部分。

    我建议您先手动试用它们,看看它们是否与您的代码库配合得很好,以及您是否喜欢它们为您提供的信息。一旦你找到了一些能给你带来价值的东西,然后花时间将它们整合到你的 cc 中。

    【讨论】:

    • 很好的答案谢谢,reek 看起来很有趣,抱歉我选择了其他答案,他引用的博客文章非常详尽。
    【解决方案3】:

    最近更新的一个看起来很有趣的工具是Ruby Object Oriented Design Inferometer - 简称 roodi。它是 v1.3.0,所以我猜它相当成熟。

    我自己没试过,因为我的代码当然已经无可非议了(哈哈)。

    至于测试覆盖率(天哪,我也没有试过这个)有rcov

    另外(看,我今天肯定会尝试其中的一些。至少一个)你可能想看看 flog and flay 以获取另一个样式检查器和重构候选者查找器。

    【讨论】:

    • 别忘了质问你的测试!此答案中的资源将真正使您的项目成形……尤其是在本周末发布 Flay 时;令人印象深刻的东西。
    【解决方案4】:

    您还可以快速启用内置警告:

    ruby -w
    

    或者在任何时候将全局变量 $VERBOSE 设置为 true。

    【讨论】:

      【解决方案5】:

      Code metrics 在 ruby​​ 工具箱网站上。

      【讨论】:

        【解决方案6】:

        Rubocop 是一种广泛使用的静态代码分析器。

        【讨论】:

          【解决方案7】:

          我刚刚发布了优秀的,它实现了对 Ruby 代码的多项检查。它结合了 roodi、reek 和 flog,还添加了一些特定于 Rails 的检查:

          gem sources -a http://gems.github.com
          sudo gem install simplabs-excellent
          

          可能会有所帮助...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-01-30
            • 2011-05-04
            • 2011-09-16
            • 1970-01-01
            • 2015-07-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多