分类 思考控 下的文章

2026年,大厂重构核心系统为何集体投向 Go?

本文永久链接 – https://tonybai.com/2026/06/08/the-real-reason-big-tech-is-switching-to-go

大家好,我是Tony Bai。

在软件工程中,核心技术栈的迁移是一项高风险、高成本的决策。

然而,在近期的技术演进中,我们看到了一股明显的趋势:全球科技巨头与快速成长的 AI 独角兽们,正在不约而同地将核心系统向 Go 语言(Golang)收敛。

  • 微软宣布将 TypeScript 核心编译器移植到 Go,构建速度暴涨 10 倍。
  • Reddit将庞大的 Python 单体架构逐步解耦,核心数据模型全面改用 Go 重写。
  • Lovable(前沿 AI 独角兽)将 4.2 万行 Python 代码移植为 Go,服务器实例直接从 200 个锐减到 10 个。
  • Uber作为长期拥有最庞大 Go 代码库的企业之一,持续将后端服务从 Python、Node.js 收敛、统一至 Go 语言,以极低的算力成本承载海量并发。

这并非盲目的技术跟风,而是一场基于运行成本、高并发能力和工程维护性的理性重构。今天,我们就通过这些大厂的真实工程案例,深入拆解大厂重构核心系统时,集体投向 Go 的底层逻辑与技术启示。

微软的编译器移植:为什么 C# 之父不选 C# 和 Rust?

2025 年 3 月,微软宣布将 TypeScript 的编译器和工具链移植到 Go 语言。到了 2026 年 4 月,采用 Go 编译器底层的 TypeScript 7 Beta 正式发布。

令人瞩目的是,这个项目的操盘手正是 Anders Hejlsberg —— C# 语言的设计者TypeScript 的创造者

这一决策在技术社区引发了深度探讨:为什么微软不用自家的 C#,也没有选择近年来大热的 Rust?这背后隐藏着极具启发性的工程权衡。

明确“移植(Port)”与“重写(Rewrite)”的边界

在工程决策中,这两者有着本质区别:

  • 完全重写(Rewrite):意味着抛弃旧代码,从零开始重新设计(New Design),风险极高。
  • 代码移植(Port):翻译现有代码,保持原有的代码结构和行为(Same behavior & structure),风险可控。

旧的 TypeScript 编译器是用函数式风格编写的,且重度依赖垃圾回收(GC)

  • 为什么不选 C#?C# 是典型的面向对象(OOP)语言。如果使用 C#,将很难平滑移植函数式风格的旧编译器,几乎等同于要推倒重写。
  • 为什么不用 Rust?Rust 没有垃圾回收机制,要求开发者手动且极其严苛地管理内存。如果改用 Rust,团队必须彻底推翻并重新设计整套代码的内存生命周期,这直接背离了“平滑移植”的初衷。

Go 为什么是最佳折中方案?

Go 既支持原生编译,拥有极高的运行速度,同时还内置了高效的垃圾回收(GC)。

更关键的是,习惯写法的 Go 代码(Idiomatic Go)在结构上与 TypeScript 原有的编码模式有着天然的相似性。这使得原有团队在维护移植后的 Go 代码时,几乎没有认知摩擦。

移植后的性能收益:
* 编译构建速度直接提升了 10 倍
* 编辑器加载时间从原来的 9.5 秒缩短至 1.2 秒

微软用事实证明:Go 是在维持原有代码结构的前提下,实现性能跨越式提升的最短路径。

Reddit 的解耦之路:高并发压力下的“影子测试”

Reddit 曾长期使用 Python 单体(Monolith)架构。随着全球流量的爆发,单体架构的弊端逐渐显现:代码耦合严重、可靠性降低,系统维护成本极高。在高峰期,甚至连发帖、评论等基础操作都会遭遇严重的延迟。

为了解决高并发瓶颈,Reddit 决定对核心的四大基础特性(评论、账户、帖子、子社区)进行解耦,全部用 Go 语言重写为独立的微服务。

为什么选择 Go?

在高并发场景下,Go 内置的轻量级协程(Goroutine)和通道(Channel)调度模型,相比于 Python 的多线程/多进程,能够以更低的系统开销和更少的网络协调,抗住同等规模的流量。

零故障上线的“影子测试(Shadow Testing)”

系统重构最忌讳“一刀切”式的直接上线。Reddit 采用了一套精妙的过渡方案:

他们让 Python 旧单体Go 新服务在后台同时运行。对于每一次写入请求,两个系统都会收到相同的输入。Go 服务将数据写入一个隔离的测试数据库。

               ┌───────────────┐
               │  User Input   │
               └───────┬───────┘
                       │
             ┌─────────┴─────────┐
             ▼                   ▼
    ┌─────────────────┐ ┌─────────────────┐
    │ Python Monolith │ │   Go Services   │
    └────────┬────────┘ └────────┬────────┘
             ▼                   ▼
    ┌─────────────────┐ ┌─────────────────┐
    │  Production DB  │ │     Test DB     │
    └─────────────────┘ └─────────────────┘
             │                   │
             └─────────┬─────────┘
                       ▼
             Compare & Debug Output

通过在后台持续对比两个系统的输出结果,团队在不影响真实用户的前提下,排查并修复了新服务中的所有潜在 Bug。确认无误后,才 100% 将流量平滑切换到了 Go 服务。

重构后的收益:
* 关键写入操作的 P99 延迟直接砍半,系统高可用性大幅提升。

运行成本与算力优化:Lovable 与 Uber 的工程实践

对于快速成长的 AI 独角兽 Lovable 来说,技术栈的选择直接关系到服务器账单和业务存亡。

作为一个允许非技术用户通过 AI 构建应用的平台,Lovable 在核心链路上面临着极高并发的挑战。用户发送一条聊天指令,后台需要瞬间触发超过 50 个 HTTP 并发调用,分别去请求各大模型提供商、内部存储及周边服务。

Python 在这种高度并行的 IO 密集型场景下显得力不心。Lovable 团队果断将 4.2 万行 Python 代码重写为 Go

无独有偶,Uber 作为长期拥有最庞大 Go 代码库的企业之一,也曾经历过从 Python、Node.js 向 Go 逐步收敛的过程。为了在单机上压榨出更高的并发能力,减少冗余的服务器开销,Uber 逐步在后端服务中停用了 Python,将核心服务统一收敛至 Go。

这两家公司,用 Go 实现了令人惊叹的算力优化:

小结:大厂系统重构释放的工程信号

这些大厂和独角兽们的集体实践,为我们释放了清晰的工程信号:

  1. “运行成本”正成为系统重构的首要驱动力
    在项目初期,动态语言(如 Python、TypeScript)确实能提供极佳的开发爽感。但当业务规模扩大、高并发场景增加时,其带来的服务器硬件成本和维护开销将呈指数级上升。
  2. Go 处于“开发效率”与“运行性能”的黄金分割点
    它不像 Rust 那样有着极其陡峭的内存管理和所有权学习曲线,能够让团队保持极高的开发效率;同时,它又拥有接近原生代码的执行速度,和冠绝群雄的轻量级并发模型。这使其成为了现代生产级后端服务的首选。

大厂的重构实践,为我们提炼了以下三条黄金工程铁律:

  1. 分清“移植”与“重写”:在系统重构时,若想在保留原有业务逻辑的前提下快速提升性能,像微软那样进行代码级移植(Port)是风险最低、效率最高的路径。
  2. 善用“影子测试(Shadow Testing)”:核心系统解耦和替换时,切忌盲目上线。采用双轨并行、对比输出的影子测试,是保障系统平滑过渡、零故障上线的最佳实践。
  3. 高并发场景首选轻量并发模型:当系统面临大量并发 IO(如 AI 编排、多 API 协同调用)时,Go 语言的协程机制能够以极低的资源消耗提供极佳的吞吐量。

系统重构的本质,是在业务发展、团队认知和机器成本之间寻找最优解。而 Go,正是大厂在经历数次工程实践后,给出的最务实的答案。

资料链接:https://www.youtube.com/watch?v=-Z813pHqSFI


今日开放讨论:

  1. 微软不用 C# 也不用 Rust,而是选择 Go 来移植 TS 编译器,这个决策中的“移植 vs 重写”权衡是否启发了你?
  2. Reddit 采用的“双轨制影子测试”非常稳健,你在实际的系统迁移或重构中,使用过类似的测试方案吗?
  3. 从 Lovable 将 200 个实例缩减为 10 个,到 Uber 节省 97% 的算力,这些真实的性能与成本数据是否改变了你对后端技术选型的看法?

欢迎在评论区留下你的硬核观点,我们一起探讨系统重构与 Go 的工程之美!


还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

划船,还是扬帆?重新审视 996 文化背后的杠杆缺失

本文永久链接 – https://tonybai.com/2025/10/16/rethink-996-culture

大家好,我是Tony Bai。

“996”——早上九点到晚上九点,一周工作六天。这个术语早已成为国内科技行业高强度工作文化的代名词。其背后的逻辑似乎坚不可摧:如果你无法用才华取胜,那就用时间取胜。努力工作,加倍努力,似乎成为了通往成功的唯一路径。随着AI赛道竞争的白热化,996文化开始“传染”给美国西部的高科技行业,这种现象也引起了欧美开发者的关注。

近日一篇名为《996 只是意味着你没有杠杆》的文章,对这一“努力神话”提出了一个颠覆性的批判。作者 J.A. Westenberg 在文中提出了一个尖锐的理论:当一家公司或个人将 996 作为其核心战略时,他们实际上已经输了。他们炫耀的不是自己的力量,而是自己的弱点

这篇文章既是是对工作文化的批判,也是一堂关于战略、价值和杠杆思维的深刻一课,值得每一位技术从业者深思。

996 的本质:没有帆,只能拼命划船

Westenberg 的核心观点可以用一个生动的比喻来概括:

“The grind-maxxed founder is trying to row the boat harder. The leverage-maxxed founder has a sail.”
(拼命“卷”的创始人,正试图更用力地划船。而善用杠杆的创始人,早已扬起了帆。)

他认为,996 文化盛行的根本原因,往往不是因为团队充满激情,而是因为他们的想法不够好,不足以在每天八小时内取得成功

  • 没有 PMF (产品市场契合) 的蛮力冲锋: 当一家公司还没有找到真正被市场需要的产品时,剩下的唯一选择似乎就是“动量表演”——通过让团队长时间工作来制造一种增长的假象。Westenberg 观察到,这种试图用蛮力冲破迷雾的方式,往往在找到突破口之前,就已将团队燃烧殆尽。
  • 用努力掩盖洞察的缺失: 过度沉迷于工作,会给人一种虚假的正义感和安慰感,让人误以为成功只是时间的函数,而非品味、判断力或时机的产物。作者直言:“没有洞察力的痴迷,只是一种病态。”

当一家公司最好的名片是“我们所有人都在拼命工作”时,在 Westenberg 看来,它其实什么都没说。

努力不是价值,“孔雀开屏”式的表演

为什么在没有独特优势(如顶尖人才、强大网络或创新想法)时,人们会倾向于崇拜“埋头苦干”?作者认为,这是一种“身份焦虑”的副作用。

你需要向世界证明你是认真的、投入的。还有什么比所有人都下班回家后,你依然在办公室奋战,并拍照发推更好的方式呢?Westenberg 将这种行为称为“孔雀开屏 (peacocking)”式的表演,目的是展示“看我有多努力”。

然而,这种表演混淆了两个根本不同的概念:

  • 努力 ≠ 价值 (Effort is not value)
  • 工时 ≠ 产出 (Hours are not outcomes)
  • 工作 ≠ 进展 (Work is not the same as progress)

Westenberg 指出,如果你的唯一优势就是“努力”,那么你是可以被轻易替代的。因为总有比你更年轻、更饥渴、更绝望的人,愿意投入更长的时间。疲惫本身,构不成任何长期的护城河。

真正的优势:在不同的轴线上竞争

作者观察到,那些他真正钦佩的人,他们拥有的“不公平优势”往往与时间无关。

  • 有些人极擅长销售。
  • 有些人是天才的设计师。
  • 有些人是简化复杂系统的大师。

关键在于,他们在完全不同的轴线上竞争。他们不需要用 996 的方式工作,因为他们在四小时内创造的价值,可能比大多数人十二小时创造的还要多。

你很少听到真正伟大的创始人吹嘘“我只是比所有人都更努力工作”。你听到的是:

  • “我们找到了人们想要的东西,然后我们把它做了出来。”
  • “我们知道一个秘密。”
  • “我们有不同的思考方式。”

在 Westenberg 看来,他们的成功,源于找到了独特的杠杆

寻找你的帆:超越时间的竞争

“努力”是线性且有上限的,而“杠杆”则是非线性且能带来指数级回报的。作者认为,最有价值的公司,正是由那些找到了杠杆的人建立的。

  • 智力杠杆 (Intellectual Leverage): 你是否拥有别人不知道的“秘密”?一个独特的洞察,一个创新的算法,一个更优越的架构。
  • 产品杠杆 (Product Leverage): 你的产品是否足够好,以至于它能“自我行走”?一个精心设计的产品,会在你睡觉时被用户自发分享。一个有用的工具,会为世界创造比其开发者投入的多得多的价值。
  • 分销杠杆 (Distribution Leverage): 你是否建立了别人难以企及的渠道或网络?

花再多的时间划船,也无法拯救一个航向错误的游戏。

小结:别再建造一台“跑步机”

996 的神话,美化了“受苦”,并将其与“成功”错误地绑定。但 Westenberg 揭示的真相或许有些残酷:最有价值的工作,往往不是最辛苦的工作。

文章最后,作者给出了一个尖锐的拷问:

“The next time someone brags about 996, ask them what they’re building. Ask them what they know that others don’t. Ask them what would keep working if they stopped. Because if the answer is “nothing,” then they haven’t built a company. They’ve just built a fucking treadmill.”
(下次有人吹嘘 996 时,问问他们在做什么。问问他们知道哪些别人不知道的事情。问问他们,如果他们停下来,还有什么能继续运作。因为如果答案是“什么都没有”,那么他们并没有建立一家公司,他们只是造了一台他妈的跑步机。)

Westenberg 的文章提醒我们,作为技术从业者,我们的目标不应该是成为跑步机上跑得最久的人,而应该是那个找到更好的交通工具,甚至学会飞行的人。我们的价值,最终体现在我们创造的杠杆上,而非消耗的时间里。是时候停止奋力划桨,开始抬头寻找风向了。

资料链接:https://www.joanwestenberg.com/p/996-just-means-you-have-no-leverage


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,>提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 从 0 开始构建 Agent Harness Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats