在轨道上重构红宝石

时间:2011-03-25 10:33:52

标签: ruby-on-rails refactoring

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

4 个答案:

答案 0 :(得分:2)

据我所知,没有自动化的方法。就我而言,关键是在开始之前确保相关区域(最好是整个应用程序)的测试覆盖率良好。

一旦完成,我倾向于采用相当强力的手法来做那个实际的重构:

  • 运行所有测试。
  • 在文件中搜索相关的文件名和字符串,判断您是否正在更改正确的内容(不要只进行搜索/替换)。
  • 在代码本身旁边重构您的测试。
  • 再次运行所有测试。
  • 重复直到它起作用。

Ruby中的重构不是非常自动化的原因(至少在我看来)是因为语言非常动态,所以任何自动化工具都很难确保它们涵盖了所有基础。

答案 1 :(得分:1)

重构是基于人类的感知。当然,计算机可以找出遗漏一些多余的东西,但是当你重构时,你实际上在改进你自己的手写代码。除非计算机具有智能和识别人类代码的能力,否则不可能。

也许你指的是别的东西?

答案 2 :(得分:1)

您应该学习一些Rails best practices并使用它们来重构您的代码

答案 3 :(得分:0)

首先要熟悉您的应用程序,然后开始一个程序并将其序列化。

  • 使用帮助程序进行优化。方法应该足够小,并尽可能减少重复代码的可能性。
  • 使用有帮助的应用程序文件
  • 您还可以私下编写方法以减少方法中的行。
  • Alwayz确定重构的位置及其依赖性。

感谢名单