2006 年 3 月 31 日,星期五

冻结很酷,因此为了善良之名冻结

由 David 发布

由于不少客户抛弃宝石,很多共享主机在 Rails 1.1 发布时手忙脚乱,因为这意味着升级宝石会自动更新所有应用程序。部分应用程序无法应对升级(尤其是 Typo),因此崩溃了。客户都不高兴并向主机抱怨:“亲爱的主机,你为什么要升级并破坏我的应用程序?”

这显然很糟糕。但没有坏到无法从中吸取教训。这是一次极好的机会,让我们意识到您应该为生产中的所有应用程序冻结 Rails。当然,我们在 12 月就谈过这件事,但口说无凭(而且经常被人忽视)。

所以,接下来是竖起的手指和一个承诺。首先是竖起的手指

如果你用开源应用程序造福世界,你必须将其随附的 Rails 版本与你在 vendor/rails 中知道与之兼容的版本一起发布。

这里提出一个反驳论点,你无法逃避这个原则:“但会让我的应用程序在下载时增大 X%”。如今,没人关心。时间比磁盘空间更加宝贵,重要的是避免因依赖关系而造成的难题,而这比磁盘空间更有价值。

然后是承诺:下一版本的 Rails 将默认提取在其 vendor/rails 中创建的 Rails 版本。这会让每个人从第一天开始就有良好的圣诞精神。就会自然而然地减少依赖关系,你很快会怒气冲冲地认为一个共享主机可以通过选择更新某些宝石来控制你的应用程序的命运。那时你就会快乐且满足。