首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shopify 用 20 年证明:好的框架,够用一辈子!

Shopify 用 20 年证明:好的框架,够用一辈子!

作者头像
埃兰德欧神
发布2026-01-07 18:58:22
发布2026-01-07 18:58:22
1130
举报
文章被收录于专栏:开源地带开源地带

前几天看到 DHH 分享的一篇文章,关于 Shopify 2025 年黑五的数据:

❝商品交易总额(GMV):62 亿美元 API 请求峰值:每分钟 3100 万次 数据库读取:每秒 5300 万次 数据库写入:每秒 200 万次 处理请求总数:1730 亿次 Kafka 消息峰值:每秒 6600 万条 CDN流量:每分钟 12 TB Embedding 生成:每天 2.16 亿次 单体应用代码:超过 40 万个单元测试

这些数字背后,可用的是一个 2004 年就诞生的框架:Ruby on Rails。就是那个常被人吐槽“过时”、“不适合大规模应用”的 Rails。

这不禁让我想起一个经常听到的声音:学新技术才有前途,老框架早该淘汰了。但 Shopify 的故事告诉我们,也许我一直想错了。

1. 一切始于一个“不够好”

2004 年,德国程序员 Tobi Lütke 想开个在线滑雪板店。当时市场上的电商系统要么贵得离谱,要么功能太弱,反正就是“不够好”。

作为一个程序员,他的反应很直接:既然没有好工具,那就自己写一个。

他选了刚出来的 Ruby on Rails,几个月后,Snowdevil 的电商平台就上线了。商品管理、购物车、支付、订单追踪——该有的功能一个不少。

但很快,Tobi 和团队发现了一件事:他们做的这个平台,比卖滑雪板赚钱的潜力大多了😅。

2006 年,Shopify 正式作为 SaaS 平台推出。2015 年上市,今天市值超过 2000 亿美元。

技术选型的本质,不是追最新最酷的东西,而是找到能快速解决问题的工具。Rails 让 Tobi 在几个月内就把想法变成了产品,这才是关键。

2. 二十年不换框架

硅谷有个惯例:公司大了就要重写技术栈。Twitter 从 Rails 换到 Scala,LinkedIn 从 Rails 转向 Node.js。仿佛不重写一遍,就对不起工程师的身份。

但 Shopify 不一样。

从 2004 年到现在,核心系统一直是 Rails。更神奇的是,CEO Tobi Lütke 至今还在写代码,最近还发布了一个开源工具 Try。

想想看,一个市值两千亿美元公司的 CEO,还在 GitHub 上提交代码,这在科技圈里真的不多见。

也许创始人懂技术,公司就不会轻易被“技术焦虑”绑架。不会因为某个新框架火了,就急着推翻重来。他们知道什么该换,什么不该换。

这种技术定力,比追最新的技术栈更值钱。

3. Rails 不能规模化?

“Rails 不适合大规模应用”——这句话我可是经常听。

但看看 Shopify 2025 年黑五的数据,着实让人眼前一亮,全球大部分公司的系统,一辈子都不会遇到这种流量。

这彻底推翻了“框架决定规模”的迷思。真正决定规模的,是架构设计,而不是框架本身

Shopify 用的是 Modular Monolith(模块化单体)+ Pods(物理隔离)+ 缓存优化,这些才是扛住流量的关键。Rails 只是基础,但基础打得稳,上面就能盖摩天大楼。

4. 不光“用 Rails”,还“改造 Rails”

Shopify 没有只当 Rails 的用户,而是直接成了“金主”。

公司雇佣了近一半的 Rails 核心贡献者,还主导开发了一堆开源项目:

  • YJIT:大幅提升 Ruby 性能的 JIT 编译器
  • Sorbet:给 Ruby 加上静态类型检查
  • Ractors:并发模型,在生产环境验证可行性

这些工具不仅让 Shopify 自己受益,也让整个 Rails 社区变得更强。

这才是开源框架的最佳实践。你用开源工具省了时间,那就把改进回馈给社区。这样整个生态才会越来越好,大家都是受益者。

很多公司只想“白嫖”开源,出了问题就抱怨工具不行。但 Shopify 的做法是:既然用了这个工具,那就让它变得更好。

5. 在生产环境用最新版本

Shopify 有个很极端的做法:在生产环境用 Rails 的最新开发版。

一般公司都是等稳定版出来才敢上生产,Shopify 直接用“测试版”。

听起来很冒险,但仔细想想,这其实是最快发现问题、最快改进的方式。发现 bug?直接修,然后贡献回社区。这样整个生态都能跟着变好。

信任是双向的:Shopify 信任 Rails 能扛住压力,同时也承担起让 Rails 变得更好的责任。这就像是开源版的 Skin in the Game——你真的在用这个工具,而不只是嘴上说说。

6. 技术栈不是非此即彼

虽然核心是 Rails,但 Shopify 的技术栈其实很多元:

  • 后端:Rails(业务逻辑)+ Rust & Go(高性能场景)
  • 前端: React + TypeScript + Remix
  • 数据: MySQL + Redis + Kafka + BigQuery
  • AI:每天 2.16 亿次 embedding 生成

这就是我最喜欢的一点:不要教条,该用啥用啥。

Rails 适合快速开发业务逻辑,那就用 Rails。需要极致性能?上 Rust。需要实时消息?Kafka 走起。

技术选型从来不是“非黑即白”的问题。很多人陷入“语言之争”、“框架之争”,其实是把问题简单化了。

真正的工程智慧,是理解每个工具的长处,然后组合起来。就像做菜,你不会只用盐来调味,对吧?

7. 三个启发

聊了这么多 Shopify 的故事,分享三个个人感悟:

别急着重写,先想想为什么要重写

很多时候,我们想重写代码,不是因为旧代码真的不行,而是因为看着不爽。但重写的成本是巨大的——不仅是时间,还有测试、迁移、Bug 修复。

Shopify 告诉我们:如果现有工具能解决问题,就先优化它,而不是推翻重来。

生产力 > 流行度

Rails 在 Hacker News 上的讨论度,肯定比不上最新的 JS 框架。但 Shopify 用 Rails 构建了两千亿美元的公司,而很多追新技术的创业公司早就倒闭了。

选技术栈,要看它能不能帮你快速验证想法,而不是看它在社区有多火。

用开源,就回馈开源

这不是道德绑架,而是长期主义。你今天回馈的代码,明天可能就帮到了另一个开发者,后天可能又回馈到你的项目里。

开源的本质是协作,不是单向索取。

8. 结语

Rails 官网有句口号:“Rails scales from HELLO WORLD to IPO”

Shopify 用 20 年证明了这句话不是吹牛。

我们这个行业,总是被“新”和“酷”裹挟着前进。新框架、新语言、新架构——似乎不学就会被淘汰。

但 Shopify 的故事提醒我们:技术选型的核心,不是追新,而是找到适合自己的工具,然后把它用到极致。

一个经过验证的工具,配合良好的架构和持续的优化,完全可以支撑起千亿级的业务。

在 AI coding 的时代,这一点尤为重要。创建一个新项目不仅仅是选择一种语言或框架,而是结合多种技术,创造出更智能、更高效的解决方案。AI 的引入让我们更关注于如何整合资源、优化流程,而不是局限于某个特定的技术栈。

所以下次当你纠结要不要学那个新框架时,不妨问自己:我是真的需要它,还是只是害怕被落下?

就像 Tobi Lütke 说的:选择一个工具,深入理解它,持续投资,将它推向极致——这远比追逐每一个新趋势更有价值。在 AI 的助力下,这种深度理解和持续优化才是成为技术创新的核心驱动力。

Rails 是什么?

Ruby on Rails(简称 Rails)是一个基于 Ruby 语言的全栈 Web 应用框架,由 David Heinemeier Hansson (正文提到的 DHH)在 2004 年从 Basecamp 项目中提取而来。Rails 的核心哲学可以用两个原则概括:

Convention over Configuration(约定优于配置):Rails 通过合理的默认约定,让开发者无需编写大量配置文件。一个符合命名规范的 Model 类会自动映射到对应的数据库表,Controller 会自动找到对应的 View 模板。这种约定大幅减少了样板代码,让开发者专注于业务逻辑。

Don‘t Repeat Yourself(不要重复自己):Rails 提倡通过抽象和代码复用来消除重复。Active Record 模式让数据库操作变得优雅,RESTful 路由设计让 API 端点清晰明了。

Rails 是经典的 MVC 架构鼻祖,这种架构让 Rails 成为快速原型开发的首选工具。Ruby on Rails 的成功不仅体现在自身的广泛应用,还深刻影响了整个 Web 开发生态。Laravel Django 等框架都表示受 Rails 启发,好的设计理念是跨语言的。“约定优于配置”、“DRY”、快速原型开发——这些由 Rails 推广的原则,今天已经成为 Web 开发的行业标准。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源地带 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 一切始于一个“不够好”
  • 2. 二十年不换框架
  • 3. Rails 不能规模化?
  • 4. 不光“用 Rails”,还“改造 Rails”
  • 5. 在生产环境用最新版本
  • 6. 技术栈不是非此即彼
  • 7. 三个启发
    • 别急着重写,先想想为什么要重写
    • 生产力 > 流行度
    • 用开源,就回馈开源
  • 8. 结语
  • Rails 是什么?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档