惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
NISL@THU
NISL@THU
G
GRAHAM CLULEY
T
Threatpost
I
Intezer
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
Security Latest
Security Latest
P
Palo Alto Networks Blog
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
AI
AI
Help Net Security
Help Net Security
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
月光博客
月光博客
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
C
CERT Recently Published Vulnerability Notes
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Scott Helme
Scott Helme
A
About on SuperTechFans
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
V
V2EX
MongoDB | Blog
MongoDB | Blog
AWS News Blog
AWS News Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
O
OpenAI News
Y
Y Combinator Blog
S
Securelist
GbyAI
GbyAI
D
Docker
SecWiki News
SecWiki News
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
T
Tenable Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
P
Privacy International News Feed
S
Security Affairs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Ruby on Rails

以后发软件库是不是只用发 spec? - V2EX OpenCode + GLM-4.7 还是弟弟, Antigravity + Gemini 3 Pro 还是强不少,不写一行代码转译了一个 Gem: rb-edge-tts - V2EX Ruby on Rails 用着太舒服了 - V2EX 手把手教您在 Baklib 上搭建一个模板网站 - V2EX 我回来了, Ruby on Rails - V2EX Ruby on Rails 国内使用情况 - V2EX 推荐一个 Admin Panel - V2EX 当我更换 mac m2 芯片 无法使用使用 mysql2 报错 symbol not found in flat namespace (_mysql_affected_rows) - V2EX 后端收到两次重复 api 请求,如何判断第二次是重复的? - V2EX Rails 7 发布 - V2EX 大家写 ruby on rails applications 的时候一般怎么写前端页面? - V2EX 如何动态显示和保存一系列输入框中的内容 - V2EX ruby on rails: no implicit conversion of nil into String - V2EX Rails 现在国内是不是有点凉了? - V2EX Rails 6.1 升级记录 - V2EX 使用 Vue 前端、Rails 后端实现图片上传的功能 - V2EX 写了个在线约会的日历,已经部署在公有云上了,正文有访问链接 - V2EX Ruby, Rails 不值一学 - V2EX Rails new 命令一直转圈怎么办? 大家都用什么来部署 ROR 的? - V2EX ruby on rails 做 web 开发,效率真是杠杠的啊 - V2EX 如果有一天 DHH 没有再维护 ror 了怎么办? - V2EX Ruby on Rails 怎么样? - V2EX 世界无人帆船锦标赛,招募两名 Ruby 志愿者的参与 正在看 restful rail development 这本书,按照书上写的测试报错了,大佬帮我看看 - V2EX spree 电商框架怎么样 - V2EX 送几本《Rails 5 敏捷开发》 - V2EX Rails 布署最佳实践 Rails Seed Migration 问题 - V2EX 心好累 ruby 发一个 OAuth1.0 的请求怎么这么难 - V2EX Ruby on Rails 的工程怎么做 heap dump? - V2EX 为什么是 Ruby on Rails?而不是 Rails on Ruby? - V2EX Turbolinks 会导致微信网页在 iOS 上点击链接时出现 invalid signature 错误, Android 和开发者工具则正常 - V2EX ruby on rails 如何上传 swf 文件 - V2EX 球写一段及其简单的 Ruby 代码 - V2EX 初学者请教一个 ruby 使用 leveldb 的问题 - V2EX Rails 本地开发,访问网站巨慢,你们都是怎么解决的? - V2EX RESTful API 设计问题(很基础) - V2EX ruby 中使用类变量是 bad code style 吗?有没有替代品? - V2EX jenkins 执行 ruby -v 和在 slave 上执行 ruby -v 版本不一致 - V2EX Tower,Worktile,Teambition 在低层存储上的差别是什么? - V2EX 良心之作,全站工程师的独白 [视频] - V2EX 有没有人用个人电脑+花生壳+RoR,在家搭建一个自己的服务器? - V2EX 之前已经可以写一些简单的东西了,现在发现都忘完了,有没有类似经历的同学?怎么破? - V2EX 视频推荐:使用 Rails 5 开发一款 Ruby on Rails app - V2EX Ruby on Rails 教程(原书第 4 版)发布 - V2EX 一个美女程序员开发的 Rails App - V2EX Rails 出 5.0 了 - V2EX ruby 如何做 race conditions 测试? - V2EX
需要长期运营的项目,千万别用 rails - V2EX
lianghudou · 2016-07-02 · via Ruby on Rails

这是一个创建于 3634 天前的主题,其中的信息可能已经有所发展或是发生改变。

基本上 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 仍是最佳选择,那些新技术拿来玩玩就行了,别用生产环境。

第 1 条附言  ·  2016 年 7 月 2 日

算了,项目用 php 重写了

dishonest

1

dishonest      2016 年 7 月 2 日

请用 docker 之类。 rails 部署时麻烦了点,但同理 nodejs , python 也会遇到同样问题。

dorentus

2

dorentus      2016 年 7 月 2 日 via iPhone   ❤️ 2

Github 表示不服。

shyling

3

shyling      2016 年 7 月 2 日 via iPad

所以什么都不要升级就好了。。。

blacklee

4

blacklee      2016 年 7 月 2 日

线上已经运营 2 年+,版本为 Ruby: 2.1.1, Rails: 4.1 。
并没有什么问题。

blacklee

5

blacklee      2016 年 7 月 2 日   ❤️ 1

在 Gemfile.lock 里查看依赖关系

blacklee

6

blacklee      2016 年 7 月 2 日

呃,其实吧,你的问题可能在线上环境不要用 Ubuntu 。
抱歉一下子添加了 3 个评论,应该合并成一个比较好。

jerray

7

jerray      2016 年 7 月 2 日

长期运营的项目,为什么不随着语言和框架的更新进行适当升级?

lianghudou

9

lianghudou      2016 年 7 月 2 日   ❤️ 1

@jerray rails 跟 php 和 java 不一样,每次升级 api 都被改的面目全非,项目没法随着框架升级。

matsuijurina

10

matsuijurina      2016 年 7 月 2 日 via Android

现在有 docker 了,这些都不是问题了。要说依赖的兼容问题, php 用了 composer 之后也一样。

mdluo

11

mdluo      2016 年 7 月 2 日 via iPhone

项目的依赖本来就需要不断及时升级,及时修复

要么就所有依赖全部版本固化

你所说的 php/java 稳定是因为它们的依赖管理器( Packagist / Composer / Maven / Gradle )本身比 Gem 优秀呢,还是因为十年前的项目基本没有用依赖管理(直接把依赖的库放进来,不去更新当然不会出问题)

lianghudou

12

lianghudou      2016 年 7 月 2 日   ❤️ 2

@matsuijurina
所以我觉得 php 用 composer 的都是吃饱了撑的, php 现在已经分成 3 个阵营,原生阵营、传统框架阵营、 composer 阵营,没错,我是原生阵营,不光不用包依赖,连框架也不用,除了 php 源码, php 项目的每一个细节自己都如了指掌,每次换服务器,直接 rsync 同步到新服务器,什么都不用管。

blacklee

14

blacklee      2016 年 7 月 2 日   ❤️ 1

年轻人,不要这么喜欢呵呵。
既然是线上的产品系统,就应该不使用会频繁升级的容器。 Ubuntu 的问题就是更新太频繁,作为 Desktop 当然没问题,自己爱咋搞就咋搞,但是作为 Server ,我想没人会有事没事就折腾更新升级的。
之前我选择 OS 之前,也是对 Ubuntu 远比 CentOS 熟悉,但是考虑到需要一个更稳定的 OS ,还是选了自己不熟悉的 CentOS 。

karloku

15

karloku      2016 年 7 月 2 日   ❤️ 1

3 年都舍不得升级一下 gem... 如果你真的很保守不愿意随便升级 gem 的话, 那就在 Gemfile 里把版本锁住, 并且把 Gemfile.lock 加入版本管理.

publicAdmin

16

publicAdmin      2016 年 7 月 2 日

铜币拿去,
求不黑 rails 好吗。
话说我也主 Java 开发的,但是 Java 也需要升级包依赖好吗。例如之前爆出的 strus2 的漏洞,然后升级这个包的同时你能保证不升级其他包?不影响其他包?再者如 1L 所说,现在 Node , Python , PHP 不都是这种强依赖?
并且 1L 也给出解决方案了,你怕 Linux 版本升级,你怕包升级,你想迁移至一模一样的运行环境,上 Docker 啊。
so ,这锅 rails 不背。

lianghudou

17

lianghudou      2016 年 7 月 2 日

@karloku 不是舍不得升,有的 gem 新版本跟 rails 3 已经不兼容了,但是老版本又跟 ruby 新版本不兼容,如果用老版本 ruby 呢, passenger 就装不上了。

简言之,就是有的 gem 必须用老版本,有的 gem 必须用新版本,一个 gem 的坑就把整个项目搁浅了。

在这里也跟用 flask 的 pythoner 一个忠告,自己玩玩的话用 flask 可以,如果长期运营的项目还是 django ,用一大堆的第三方库建的项目,过几年就知道危害了。

ysr1023

18

ysr1023      2016 年 7 月 2 日   ❤️ 1

rails 算新技术啦?你让一堆 js 框架情何以堪...

我司有 3 年以上的 rails 项目,运行得好好的, lz 请从自己身上找找原因吧。

lululau

19

lululau      2016 年 7 月 2 日 via iPhone   ❤️ 2

典型的拉不出屎怪地球引力不够

julor

20

julor      2016 年 7 月 2 日 via Android

用 golang 编译后就是一个可执行文件,不存在依赖,这么好的语言不用?

cxh116

21

cxh116      2016 年 7 月 2 日 via Android

java 现在都 1.8 了, 1.7 都结束支持了。但还有很多线上环境用 1.4 1.5 。他们的项目不升级处理在 java 1.8 环境上面部署吗?

既然不愿意升级,就都用老版本的东西。 ruby 1.8.7 肯定兼容 rails 3 。 ruby 1.8 都默认没有 gem , rake ,需要自己手动装,至于怎么安装指定的 gem ,好好看看 rubygems 的 gem 命令参数吧。

jetbillwin

22

jetbillwin      2016 年 7 月 2 日

Github 表示不服,你不更新,锁定版本不就好了。自己技术差,怪不得别人。另外,长期运营,难道你想写了一个代码,十年都不动了😂???

aveline

23

aveline      2016 年 7 月 2 日

Grails 大法好(逃

bclerdx

24

bclerdx      2016 年 7 月 2 日

@cxh116 却是,很多线上环境还是 JAVA JDK 1.4 、 1.5 、 1.6 的古老环境,针对 JAVA JDK 1.8 环境没有部署。

SmiteChow

25

SmiteChow      2016 年 7 月 2 日

不可能啊,没有 virualenv 吗?我记得是有的。

PublicFourWord

26

PublicFourWord      2016 年 7 月 2 日   ❤️ 2

如果不会用 rails ,千万别用 rails
如果不会用 xxx ,千万别用 xxx

wsy2220

27

wsy2220      2016 年 7 月 2 日

自己能力问题不要赖别人

chareice

28

chareice      2016 年 7 月 2 日

楼主处处传授人生的经验啊,你咋不上天呢。

spark

29

spark      2016 年 7 月 2 日

铜币拿走, 莫黑我大铁路!

ichou

30

ichou      2016 年 7 月 2 日 via iPhone

php 现在已经分成 3 个阵营

请问是楼主自己总结的吗

chloerei

31

chloerei      2016 年 7 月 2 日

Rails Conf 2012 Keynote: Progress by David Heinemeier Hansson

RangerWolf

32

RangerWolf      2016 年 7 月 2 日

虽然楼主我基本上赞同你的意见,但是你在 V2 上开喷某个语言不行,不是找骂吗?

phpuser

33

phpuser      2016 年 7 月 2 日 via Android

10 年前的 Rails 项目仍在发挥余热的路过。 10 年没改过代码,只是换了几次服务器。

frankzeng

34

frankzeng      2016 年 7 月 2 日

你的 ubuntu 不要升级嘛,然后直接把所有库文件拷过去。

techmoe

35

techmoe      2016 年 7 月 2 日 via Android

docker 解决最佳范例

xiaket

36

xiaket      2016 年 7 月 2 日

刚接手一个线上运营了 7 年+的 rails 项目...

mml

37

mml      2016 年 7 月 2 日

长期运营的项目,我估计除了重启,没人想 /敢去碰。

vinceguo

38

vinceguo      2016 年 7 月 2 日 via Android

什么时候升级 os 版本都不算大事了? naive

zaishanfeng

39

zaishanfeng      2016 年 7 月 2 日 via Android

这个问题任何语言都存在。我觉得你应该先找出问题在哪。

sagnitude

41

sagnitude      2016 年 7 月 2 日

一个已经基本结束开发,正在长期稳定运营的工程,你这升级操作系统版本是不是太激进了?

lightening

43

lightening      2016 年 7 月 2 日

你要么什么都不升级,要么一直升级到最新版。怎么会突然只升级一个依赖需要 eventmachine 了呢?

“为了个 rails 放弃 ubuntu ,呵呵~”
真不知道你的主要产品是你的 rails app 还是运行它的操作系统,呵呵。

Arnie97

44

Arnie97      2016 年 7 月 2 日 via Android

@julor 不就是默认静态链接吗,并不能避免问题,换个内核试试?

julor

46

julor      2016 年 7 月 2 日 via Android

@Arnie97 直接编译成可执行文件,没有依赖。

Actrace

47

Actrace      2016 年 7 月 2 日

说白了,楼主更在意编程语言的生态。
越高级的编程语言,面对环境变更时,前后对接的差异更少。当然这个也跟语言设计者有一定的关系,但是 PHP 阵营的好处是,这种语言的发展基本是堆叠特性,而非重新设计。因此我们的代码可以流转很长的一段时间而无须重构(或者是大规模重构)。
在实际生产生活中,我们不可能不升级操作系统或者是编程语言版本,及时你知道升级的改变可能不大,或者没有改变,但是基于安全考虑,基本上公司都是会要求升级的,因此 PHP 的升级成本相对较低,进而受到大量一线程序员(码畜)的欢迎。

欢迎加入 PHP 阵营。

zhs227

49

zhs227      2016 年 7 月 2 日

经历过 2->3 的升级。表示只要锁住依赖,继续使用 rails2 ,就不会有大问题。

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

如果一个 gem 好多年都不更新了,确实在使用的时候要慎重考虑。

Arnie97

50

Arnie97      2016 年 7 月 2 日 via Android

@julor 只是对 Go 的包不依赖,有对底层的依赖,除非二进制是裸机运行,否则换系统(内核)可能不行。

seamon

51

seamon      2016 年 7 月 2 日

你自己说的“满打满算 10 个 gem ”,要么你在 Gemfile 里锁版本,随便换服务器。要么你既然“长期运营”,就时常升级一下,也不会有问题。

你这么大开大阖地玩 rails ,让我们这些依赖 100 多个 gem 跑了两三年正准备升 rails5 的项目,情何以堪啊。

likuku

52

likuku      2016 年 7 月 2 日

服务器环境整体打包迁移嘛,软件环境完全一样就是了。

izoabr

53

izoabr      2016 年 7 月 3 日

唉, python 用户一样

orancho

54

orancho      2016 年 7 月 3 日

铜币给你了,别无脑黑秀下限。

msg7086

57

msg7086      2016 年 7 月 3 日

一个不经常维护的系统也敢叫长期运营?
你 PHP4.2 上写的项目能在 PHP7 下面跑吗?

呵呵。

grzhan

58

grzhan      2016 年 7 月 3 日

关于 LZ 对于 flask 的看法表示一定程度的赞同

julor

59

julor      2016 年 7 月 3 日 via Android
hging

60

hging      2016 年 7 月 3 日 via iPhone

自己不会用就怪框架怪语言,快去用 php 吧。

TangMonk

61

TangMonk      2016 年 7 月 3 日 via Android

把那个依赖 eventmachine 的 gem folk 下来改了就好了嘛

colorfulberry

62

colorfulberry      2016 年 7 月 3 日

对于 rails 你不就是换个环境么,要么带上 Gemfile.lock 要么就升级下项目

rootooroot

63

rootooroot      2016 年 7 月 3 日

楼主不想和楼上的说话 并向他们扔了一堆依赖 =。=

Ahri

64

Ahri      2016 年 7 月 3 日

醉了,看标题以为是跟我一样吐槽 Rails 各种落后的理念,结果是来推 Java 和 PHP 的。。。

倒车,请注意。倒车,请注意。

Balthild

65

Balthild      2016 年 7 月 3 日 via Android

@lianghudou 如果你的 php 项目要几十个、上百个依赖,每个依赖你都手动放置、加载、升级,累不累啊你。

HLT

66

HLT      2016 年 7 月 3 日

说得好像 PHP 不用 composer 了一样。。。

jeremaihloo

67

jeremaihloo      2016 年 7 月 3 日 via Android   ❤️ 1

这个时候就还考虑夸一夸我大 golang 了

newghost

68

newghost      2016 年 7 月 3 日

我觉 php 升级起来兼容问题也挺多的

2225377fjs

69

2225377fjs      2016 年 7 月 3 日

楼主说的还是有一定客观性的呀,在版本稳定兼容性方面 python , nodejs , rails 之类的确实比不上 java ,不过上 V2EX 来喷一些语言,看样子犯了大忌啊。

如果想要少花一些精力在版本升级方面的工作,而且要长期维护,选 Java 还是有优势的。

akira

70

akira      2016 年 7 月 3 日

只要是升级,兼容性都会有可能出问题的。
锁定版本运行环境就是了,不要什么都依赖网络自动下载

nine

71

nine      2016 年 7 月 3 日

rails 项目,只要每次 release 版本都跟着升级就好了

reus

72

reus      2016 年 7 月 3 日

把原先的文件系统整个复制下来,然后用 systemd-nspawn / docker / rkt 跑。
把原先的文件系统整个复制下来,然后用 systemd-nspawn / docker / rkt 跑。
把原先的文件系统整个复制下来,然后用 systemd-nspawn / docker / rkt 跑。

虽然 rails 这样确实值得批评,但是是有办法解决的,没必要重写。

16500682

73

16500682      2016 年 7 月 3 日 via Android

善用 docker

mingyun

74

mingyun      2016 年 7 月 3 日

php7 ,你值得拥有

lguan

75

lguan      2016 年 7 月 4 日

个人水平问题,正好前两天有个客户一个服务器坏,上面跑的项目是 rails 3 的, 12 年跑到现在,没有一次停机,直到前几天服务器挂掉,重新挪到新的服务器上又跑了。

手上还有几个项目都是跑了五六年的,不过一直保持着版本的升级

TimLang

76

TimLang      2016 年 7 月 4 日 via Android

一个项目才 10 个 gem 也来黑。

firefox12

77

firefox12      2016 年 7 月 4 日

用得很少的一段时间,但是我想说一个一升级就改接口的库也好 语言也好,只能说明了不成熟。一个 ruby on rails 的教程, 3.0 4.0 的创建项目的命令都不一样了 这感觉就是这个大楼的门每天都变样子....
java 最早的代码在 java 8 里也是能跑的呀, windows95 的程序在 win7 里也是能跑的呀,这才是底蕴。一个 75 个 gem 的程序, 升级就是泪,虽然我 ruby 渣,为什么 java php cpp python 库升级 语言升级 我都没这种感觉呢?

xuyifei

78

xuyifei      2016 年 7 月 4 日

。。感觉楼主已经被喷走了

heimirror

81

heimirror      2016 年 8 月 3 日

我们公司 rails2 运行快 10 年了

wpzero

82

wpzero      2016 年 12 月 11 日 via iPad

Github airbnb 不都是吗?项目好几年不维护升级,环境不固化,还说毛呀。

cmingxu

83

cmingxu      2023 年 2 月 23 日

rails 表示不服, 其他框架同样存在类似问题,试想一下 c++