2011-02-05 158 views
4

我有一個現有的Rails 2.3.10應用程序,我正在考慮從1.8.7升級到Ruby 1.9.2。在我開始嘗試使應用程序開始工作之前,我試圖決定是否值得付出努力。爲了瞭解可能涉及多少工作,我只是運行Ruby 1.9.2中的所有規範(rspec 1.3.1)。 98%的測試都通過了,但它們的運行速度慢了大約3倍,並且有很多消息像「Ruby 1.9不支持Unicode規範化」。我發現post about this issue,所以我知道我可以修復它,但我擔心速度和我可能遇到的其他問題。我應該在Rails 2.3.10應用程序中使用Ruby 1.9.2嗎?

我的其他選擇是將應用程序升級到Rails 3,並在當時升級到1.9.2。這似乎是一個長期更好的決定,但可能會有更多的工作。

tl; dr - 我現在應該升級到1.9.2還是等到應用程序在Rails 3上?

回答

3

我會推薦做這兩個,但是你做他們的順序,或者如果你同時做他們兩個是真正的個人偏好。如果你有一個覆蓋面很好的強大測試套件,這是完成轉換的第一步。你會碰到的主要路障如下:

  • 許多新的gem版本僅支持Rails 3中,所以如果你只是做在一步一個腳印,確保你的寶石支持。例如,您不希望遇到由於您使用Ruby 1.9.2而需要升級的情況,但新版本的Gem僅在Rails 3中可用。
  • 有一些語法更改在Ruby 1.9.2中,需要重新編譯已編譯的C擴展或者重新安裝gems。
  • 從Rails 2.3到Rails 3.0有一些主要的應用程序配置更改。他們需要一些時間才能完成,但有很多支持。

一般而言,Ruby 1.9.2將比Ruby 1.8.7更快,並且會提供一些很酷的新語法。如果你得到了相反的結果,那麼我會對你的代碼進行基準測試,並確保實際情況是這樣,並且不僅僅是失敗的測試會減慢套件的速度。

相關問題