Ruby:使用Reek作为训练工具

时间:2011-05-15 21:41:13

标签: ruby reek

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

我有笨拙的岁月或编程经验但主要是C变种。我在过去几年中使用Ruby作为实用脚本语言,但我的ruby代码显然主要是音译C.现在我希望将它用作一个严肃的工具,我想学习“红宝石方式”。

我计划从一开始就使用TDD / BDD来提供必要的培训反馈,看起来Reek可能对提供有关非标准表格和用途的反馈很有用。然而,根据长期的经验,我知道这些工具可以是双刃剑,需要先前使用经验并且在新手的手中会导致比他们解决的问题更多的问题。

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

如果重要,我将首先关注为MacOS X编写独立应用程序,即没有rails,服务器等等。

4 个答案:

答案 0 :(得分:3)

不,Reek不打算成为Ruby风格的检查器。如果你想要这样的东西,我会建议Roodi - 或者更好的是,与可以向你展示优秀Ruby风格的人配对。

我把Reek写成了一个小小的研究项目,坦率地说,它没有像flay,flog和rcov这样简单的工具那么有用。通过消除重复和复杂性以及通过TDD编写代码来学习成为更好的编码器。

答案 1 :(得分:1)

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

我对来自类C语言的人的建议:从你的系统中获取for循环。假装它不存在。这将迫使你进入更多rubyish成语。

答案 2 :(得分:1)

查看RuboCop

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

答案 3 :(得分:0)

我必须努力强迫自己进入TDD心态,我发现由metrical gem(metric_fu的包装器)提供的工具包非常有用。事实上,我建议在测试中浏览所有Railscasts - 这不是一个巨大的时间下沉,我发现它很有价值。

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