需要长期运营的项目,千万别用 rails

2016-07-02 12:26:09 +08:00
 lianghudou
基本上 3 年以后,换服务器的时候项目就等于盼了死刑。

我 13 年做了个项目,用的当时最新的 rails3.2 。现在转服务器,不知道那个 gem 依赖了 eventmachine ,并且必须是 1.0.0 版的,为了兼容这个 1.0.0 版,不得不用 ruby 2.0.0 ,但是,在这个低版本的 ruby 上, rake 已经罢工了,必须得 2.2.2 以上。

其实我用的 gem 不算多, Gemfile 里满打满算也就 10 个左右。

linux环境的跨度也不算大,仅仅从ubuntu12到ubuntu14,难以想象到ubuntu18、ubuntu20,这个项目还有没有继续运行的可能。

如果你的 web 项目打算让它稳定运行 10 年以上, java 和 php 仍是最佳选择,那些新技术拿来玩玩就行了,别用生产环境。
14427 次点击
所在节点    Ruby on Rails
83 条回复
sagnitude
2016-07-02 20:12:03 +08:00
一个已经基本结束开发,正在长期稳定运营的工程,你这升级操作系统版本是不是太激进了?
zaishanfeng
2016-07-02 20:13:45 +08:00
@julor 如果操作系统版本不一样应该也存在的
lightening
2016-07-02 20:22:44 +08:00
你要么什么都不升级,要么一直升级到最新版。怎么会突然只升级一个依赖需要 eventmachine 了呢?

“为了个 rails 放弃 ubuntu ,呵呵~”
真不知道你的主要产品是你的 rails app 还是运行它的操作系统,呵呵。
Arnie97
2016-07-02 20:23:10 +08:00
@julor 不就是默认静态链接吗,并不能避免问题,换个内核试试?
julor
2016-07-02 20:39:00 +08:00
@Arnie97 目前没遇到
julor
2016-07-02 20:40:32 +08:00
@Arnie97 直接编译成可执行文件,没有依赖。
Actrace
2016-07-02 20:57:01 +08:00
说白了,楼主更在意编程语言的生态。
越高级的编程语言,面对环境变更时,前后对接的差异更少。当然这个也跟语言设计者有一定的关系,但是 PHP 阵营的好处是,这种语言的发展基本是堆叠特性,而非重新设计。因此我们的代码可以流转很长的一段时间而无须重构(或者是大规模重构)。
在实际生产生活中,我们不可能不升级操作系统或者是编程语言版本,及时你知道升级的改变可能不大,或者没有改变,但是基于安全考虑,基本上公司都是会要求升级的,因此 PHP 的升级成本相对较低,进而受到大量一线程序员(码畜)的欢迎。










欢迎加入 PHP 阵营。
Jakesoft
2016-07-02 21:05:06 +08:00
@Actrace 我想知道有哪些公司的哪些项目使用了 php7
zhs227
2016-07-02 21:07:42 +08:00
经历过 2->3 的升级。表示只要锁住依赖,继续使用 rails2 ,就不会有大问题。

gem 依赖过多容易出现的问题是,部分 gem 失去维护,好多年不更新版本了。因此在 2->3 的过程中,就有少部分的代码重写了,目的是移除那些死掉的 gem. PHP 的 packagist 理论上也是有这样的问题,但由于 php 在版本升级的过程中没有大破大立,因此问题显得不严重。

如果一个 gem 好多年都不更新了,确实在使用的时候要慎重考虑。
Arnie97
2016-07-02 21:38:33 +08:00
@julor 只是对 Go 的包不依赖,有对底层的依赖,除非二进制是裸机运行,否则换系统(内核)可能不行。
seamon
2016-07-02 22:57:47 +08:00
你自己说的“满打满算 10 个 gem ”,要么你在 Gemfile 里锁版本,随便换服务器。要么你既然“长期运营”,就时常升级一下,也不会有问题。

你这么大开大阖地玩 rails ,让我们这些依赖 100 多个 gem 跑了两三年正准备升 rails5 的项目,情何以堪啊。
likuku
2016-07-02 23:31:43 +08:00
服务器环境整体打包迁移嘛,软件环境完全一样就是了。
izoabr
2016-07-03 01:26:14 +08:00
唉, python 用户一样
orancho
2016-07-03 01:32:43 +08:00
铜币给你了,别无脑黑秀下限。
Numbcoder
2016-07-03 01:38:25 +08:00
厨子不好嫌灶歪
jeffw
2016-07-03 03:58:29 +08:00
@Jakesoft 新浪微博在用 PHP7
msg7086
2016-07-03 05:59:33 +08:00
一个不经常维护的系统也敢叫长期运营?
你 PHP4.2 上写的项目能在 PHP7 下面跑吗?

呵呵。
grzhan
2016-07-03 07:12:19 +08:00
关于 LZ 对于 flask 的看法表示一定程度的赞同
julor
2016-07-03 07:15:48 +08:00
@Arnie97 普通的 web 不存在
hging
2016-07-03 08:29:09 +08:00
自己不会用就怪框架怪语言,快去用 php 吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX