3

Reek 在培训红宝石菜鸟的良好实践方面是否有用,还是需要经验丰富的红宝石眼来使用和解释?

我有多年或编程经验,但主要是 C 变体。在过去的几年里,我很少使用 Ruby 作为实用脚本语言,但我的 ruby​​ 代码显然大部分只是音译 C。现在我希望将它用作一个严肃的工具,并且我想学习“ruby 方式”。

我计划从一开始就使用 TDD/BDD 来提供必要的培训反馈,看起来 Reek 可能有助于提供有关非标准形式和使用的反馈。但是,根据长期的经验,我知道这些工具可能是两刃剑,需要有经验才能使用,并且在新手手中会导致更多的问题而不是解决的问题。

有没有人以这种方式使用 reek(或类似工具)的经验?

如果这很重要,我最初将专注于为 MacOS X 编写独立的应用程序,即没有导轨、服务器等。

4

4 回答 4

4

不,Reek 并非旨在成为 Ruby 风格的检查器。如果你想要这样的东西,我会建议 Roodi——或者,更好的是,与可以向你展示良好 Ruby 风格的人配对。

我将 Reek 作为一个小型研究项目编写,坦率地说,它不如 flay、flog 和 rcov 等更简单的工具有用。通过消除重复和复杂性以及对代码进行 TDD,学习成为更好的编码人员。

于 2011-05-16T07:12:52.070 回答
1

Reek 警告可能的设计问题(以及一些更琐碎的事情),但它并不能帮助您编写惯用的 Ruby。坦率地说,我认为阅读这些功能与实际运行 reek 一样有价值。

我对来自类 C 语言的人的建议:从系统中取出 for 循环。假装不存在。这将迫使你使用更多的红宝石习语。

于 2011-05-15T23:04:16.800 回答
1

看看RuboCop

它检测到许多小东西,甚至可以自动纠正其中的一些。如果您使用 Git,您可以在运行 RuboCop 之前存储您的更改,因此您可以使用 git diff 查看更正。

于 2016-11-18T14:35:41.513 回答
0

我不得不努力强迫自己进入 TDD 思维模式,我发现 metrical gem(metric_fu 的包装器)提供的工具包非常有用。事实上,我建议通过所有 Railscasts 进行测试——这不是一个巨大的时间消耗,我发现它很有价值。

最近关于他如何进行测试的 Railscast 是一个很好的设置方法,然后我回过头来阅读其他关于 Request Specs、Capybara、Metrical 等的教程。

于 2011-07-23T07:39:09.917 回答