由于Rails确实发生了相当快的变化,有人可以分享他们在Rails开发时维护现有应用程序的经验。像Heroku这样的托管服务如何处理这个问题?主机是否支持旧版本的rails,或者主机是否可以升级应用程序?
对于像Asp.net这样经常不更新的框架,在我看来,更少的应用程序会因为速度较慢而被破坏。开发人员是否总是追逐下一版本的rails?
答案 0 :(得分:2)
使用Gems和现在的Bundler,这不是一个真正的问题。为了使您的应用程序保持最新,您所要做的就是告诉它在Gemfile中捆绑您的应用程序的Rails版本:gem 'rails', '3.1'
。这适用于任何版本,过去或当前版本。您唯一需要担心的是像Ruby这样的库,但任何版本的Rails都可以在大多数Ruby版本上运行。此外,大多数主机甚至允许共享服务器上的用户根据需要编译自己的Ruby。
答案 1 :(得分:0)
主机肯定支持“遗留”版本。我认为即使GitHub也在Rails 2.2上,但它们可能是自托管的。
然而,对于新的rails版本,托管往往不是那么大的交易。这是社区。宝石,插件和系统在Rails社区中以惊人的速度进入和退出时尚,你可以很快发现自己致力于一堆无法维护的贡献代码。大多数新宝石现在只支持Rails 3,所以如果你有一个2.x.x的应用程序并且想要使用这些东西,那么你就是SOL,除非你自己向后移植它。所以是的,你在很长一段时间里都在追逐Rails版本。有两种方法可以解决它:要么在完成之后离开你写的每个应用程序,要么像顾问一样,要么保持你的应用程序小。如果您想构建一个功能丰富的大型平台,则无法将其构建为一个应用程序。你将永远陷入Rails版本,最终还是必须重写它。只需设置一个阈值,并说当这个应用程序超过10,000行时,是时候将其分解为服务,这样它就不会变得僵化。