在轨道上重构红宝石

在轨道上重构红宝石

问题描述:

什么是在Ruby on Rails中重构的最佳方式。我有一个项目,我想重构我的几个对象 - 额外的属性和现有属性的重命名。我如何做到这一点最简单的方法?我用脚手架创建了不同的对象“rails generate scaffold foo name:string ....” 我的确从头开始或者有一些很酷的ruby命令,比如“rails refactor foo name:string”..在轨道上重构红宝石

据我所知,没有自动化的方法来做到这一点。就我而言,关键的事情是在开始之前确保您的测试覆盖率在相关领域(并且最好在整个应用程序中)都很好。

一旦这样做了,我倾向于采用比较蛮力战术做实际的重构:

  • 运行所有测试。
  • 搜索文件中的相关文件名和字符串,作出价值判断是否您更改正确的事(不只是做搜索/替换)。
  • 重构代码本身的测试。
  • 运行全部再次测试。
  • 重复,直到它工作。

即重构不是很Ruby的自动化的原因(我认为至少)是因为语言是如此动态的,所以它是非常困难的任何自动化工具,以确保他们已经涵盖了所有的基础。

重构基于人类的看法。当然,遗漏一些多余的东西可能被计算机弄清楚,但除此之外,当你重构时,你基本上是在改进自己的手写代码。除非计算机具有像人类那样识别代码的智能和能力,否则,这是不可能的。

也许你指的是别的吗?

+0

我认为OP希望是这样的一些东西:http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html为Rails。 – zengr 2011-03-25 10:49:16

+0

我找做着做着它的它/最有效的方法的可行之路。 – lmkk 2011-03-25 11:48:46

你应该学会一些Rails best practices,并用它们来重构你的代码

首先你的应用有很好的了解,然后开始在程序和序列化。

  • 使用助手进行优化。方法应该足够小,并尽量减少重复代码的可能性。
  • 使用的应用程序文件,这帮助了很多
  • 你也可以写在私人的方法,以减少方法的线条。
  • Alwayz一定要提出重构完成和它的依赖..

感谢名单