我即将开始着手将公司的旧 rails ap 从 2.3/1.87 移植到最新版本的 rails。我应该等待rails 4,还是应该等待3.2?
我们将借此机会确保有完整的测试覆盖率,并且可能还会涉及一些重写。第一个目标是确保所有当前功能都可以运行。
我们希望尽可能多的当前代码库在最新版本的 rails 下工作。我们将重写任何没有的部分。
我即将开始着手将公司的旧 rails ap 从 2.3/1.87 移植到最新版本的 rails。我应该等待rails 4,还是应该等待3.2?
我们将借此机会确保有完整的测试覆盖率,并且可能还会涉及一些重写。第一个目标是确保所有当前功能都可以运行。
我们希望尽可能多的当前代码库在最新版本的 rails 下工作。我们将重写任何没有的部分。
我会考虑以下两种选择:
A) 重新编写应用程序。
在这种情况下,我会在 rails 3.2.10 中执行此操作,不要等到 4,因为它必须发布、动摇、发现错误等。使用 rails 几乎永远不会等待,因为它的发布周期如此之快主要变化。在过去的几年里,我通过艰难的方式学到了一些东西。
B) 逐步升级。
我也不会等到 4 来了,现在去 3.2.10。首先将 2.3 应用程序更新到 rails 3.0 这实际上可能并不难。有一些格式更改和活动记录更改,但大多数都相当直截了当,并且被其他人很好地记录了下来。请注意弃用警告,因为这些警告通常在 Rails 版本 x.0 中引入,然后在 x.1 中实际删除(因此在这种情况下,这意味着 3.0 和 3.1)
一旦完成并且您已经开始尝试并确保一切正常,然后继续升级到 rails 3.1 这实际上是一个相当大的升级,因为它引入了资产管道。您需要阅读并遵循建议。不要通过不将其用于生产来“逃避”。基本上它做了两个关键的事情:缩小 js 代码并将所有 js 和 css 代码编译到 1 个文件中(每个)。这有助于加快网页速度并减少对所有单个资产的服务器请求。
下一次将 ruby 从 1.8.7 升级到 1.9.3 这应该相对轻松,但与所有步骤一样,请仔细检查应用程序,显然如果您有自动回归测试,它们应该运行(对于此处列出的每个步骤都相同)。
最后将 rails 从 3.1 升级到 3.2.11,其中包括一个安全修复程序。
您做出的选择将取决于大量其他因素,包括技术和非技术因素,包括:
有用的资源:
我认为您首先需要更新到 3.x,一段时间后(当 4.1 或类似版本发布时)您会将您的应用程序更新到最新的 Rails 版本。
我强烈建议为当前代码库进行测试(如果还没有完成的话)。当您更新到 Rails 3 时,您将获得一个很好的错误基础,您需要在生产之前修复这些错误。
还有很多关于如何将 2.x 更新到 3.x Rails 应用程序的教程(视频和文本)。
我的建议:将您当前的应用程序更新到 3.2 并等到 4.x 分支稳定,您可以在生产模式下使用它(从 4.0 发布大约需要 4-8 个月)