Web Analytics

Tony Bai

一个程序员的心路历程

不是所有服务都值得“双活”:Uber容灾架构的降本哲学

Uber 在顶级系统会议 NSDI'26 上披露了其新一代容灾架构 UFA:过去十年为应对年均不到 20 小时的全量峰值故障,全公司 6000 多个微服务长期预留 2 倍容量,导致 400 万核 CPU 机队利用率常年仅 20%。通过系统性消灭 4155 个“下游挂导致核心挂”的 fail-close 隐性依赖,并将服务划分为 Always-On、Active-Migrate 等四级容灾档位进行安全超卖,Uber 用两年时间砍掉 102.5 万核 CPU,全局利用率拉升至 31%,同时核心行程可用率始终稳定在 99.97% 以上。

November 8, 2026 · 13 min · Tony Bai

Lean 创始人:当 AI 开始写代码,谁来证明它是正确的?

AI 正在大幅降低软件开发中的代码生成成本,但代码生成并不等于软件正确。Lean 创始人 Leo de Moura 认为,形式化验证可能迎来自己的“ImageNet 时刻”:大模型正在使自动形式化和机器可检查的证明变得实用。未来的软件工程,可能从以代码为中心,转向以规格说明、形式化模型和可验证性质为中心。真正重要的资产,不再只是代码,而是能够证明软件符合预期的知识体系。

November 7, 2026 · 14 min · Tony Bai

从记忆到进化:Anthropic 揭秘 Agent Memory 的底层设计

Anthropic 最新研究揭示了 Agent Memory 的四层架构,以及 Dreaming 机制如何让 Agent 在任务间隙整理经验、纠正错误、构建知识 Wiki。通过多个实验,研究证明了记忆质量比记忆数量更重要,也展示了 Agent 从简单信息存储走向持续经验学习的可能路径。

November 7, 2026 · 12 min · Tony Bai

为什么一个 JSON 库,Go 团队花了六年才重写完?

Go 1.27 正式引入稳定版 `encoding/json/v2`,标志着一项持续近六年的标准库重构工作终于落地。这项工作源于旧版 `encoding/json` 长期存在的设计缺陷:严格性不足、API 扩展困难、流式处理能力有限,以及性能上的结构性瓶颈。由于 Go 1 兼容性承诺,Go 团队无法直接修改旧 API 的既有行为,只能另起炉灶,重新设计 JSON 处理架构。从 2020 年的原型探索,到社区公开讨论、正式 Proposal、Go 1.25 实验,再到 Go 1.27 正式稳定,JSON v2 不仅重构了 JSON 处理机制,还通过统一底层实现,让新旧 API 能够长期共存。这六年,Go 团队交付的不只是一个新 JSON 库,更是一堂关于大型基础设施如何演进的工程课。

November 7, 2026 · 9 min · Tony Bai

再见,map[T]struct!Go 泛型 Set 终于被官方接受了

Go 团队正式接受泛型 Set 提案 #69230!这个基于 map[T]struct{} 的老牌惯用法,终于有望拥有官方认可的泛型抽象。本文回顾 Go Set 十余年的演进历程,拆解新 API 的设计,以及它与泛型、迭代器之间的关系。

November 6, 2026 · 8 min · Tony Bai