坚守内核,拥抱变量:我的 2025 年终复盘与 2026 展望

本文永久链接 – https://tonybai.com/2026/01/04/stick-to-the-core-embrace-variables-2025-review-2026-outlook 大家好,我是Tony Bai。 当时钟拨向 2026 年,我不禁回望刚刚过去的 2025。 在技术史上,这注定会被定义为**“分水岭”**的一年。如果说之前我们还在观望 AI 能画出什么样的图,生成怎样的代码,那么在 2025 年,我们真切地感受到了它对软件工程核心领地的冲击与重塑——从 Google 三巨头定义“AI Agent 元年”,到CodeRabbit 报告揭示 AI 代码的质量隐忧,再到 Rob Pike 对那封AI “致谢信”的罕见愤怒。 ...

January 4, 2026 · 8 min · Tony Bai

微服务灾难清单:从技术深坑到组织泥潭的 10 个惨痛教训

本文永久链接 – https://tonybai.com/2025/11/04/microservice-disasters 大家好,我是Tony Bai。 2014 年,当 Martin Fowler 发表那篇定义性的文章后,“微服务”就从一个架构理念,迅速演变为席卷全球软件行业的技术浪潮。它承诺将庞大、笨重的单体应用,分解为小而美的、可独立开发和部署的服务,从而极大地提升团队的敏捷性和交付速度。 然而,在这份美好的承诺背后,隐藏着怎样的代价?资深工程师 João Alves 在他的系列文章中,以亲身经历为蓝本,为我们整理了一份包含 10 个灾难的“血泪清单”。这份清单,系统性地揭示了从技术深坑到组织泥潭的各种陷阱,对于任何一个身处微服务浪潮中的团队来说,都极具警示价值。 ...

November 4, 2025 · 6 min · Tony Bai

成为更完整的 Go 工程师,从补上这堂系统编程课开始

本文永久链接 – https://tonybai.com/2025/09/01/system-programming-in-go 大家好,我是Tony Bai。 作为一名 Go 工程师,我们无疑是幸运的。这门语言为我们提供了简洁的语法、强大的并发模型和一套设计精良的标准库。我们能以极高的效率,构建出高性能的 Web 服务、数据管道和云原生应用。 ...

September 1, 2025 · 6 min · Tony Bai

为何Go语言迟迟未能拥抱 io_uring?揭秘集成的三大核心困境

本文永久链接 – https://tonybai.com/2025/08/11/why-go-not-embrace-iouring 大家好,我是Tony Bai。 在 Linux I/O 的世界里,io_uring 如同划破夜空的流星,被誉为“终极接口”。它承诺以无与伦比的效率,为数据密集型应用带来革命性的性能提升。正如高性能数据库 ScyllaDB 在其官方博文中所展示的,io_uring 能够将系统性能推向新的高峰。 ...

August 11, 2025 · 7 min · Tony Bai

Go json/v2实战:告别内存爆炸,掌握真流式Marshal和Unmarshal

本文永久链接 – https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2 大家好,我是Tony Bai。 Go 开发者长期以来面临一个痛点:标准库 encoding/json 在处理大型 JSON 数据时,即使使用 Encoder/Decoder,也因其内部的全量缓冲机制而导致巨大的内存开销。备受期待的 encoding/json/v2 提案(#71497)旨在从根本上解决这一问题。通过引入全新的底层包 encoding/json/jsontext,v2 实现了真正的流式处理能力。本文将通过具体的、可量化的基准测试,向你展示 v1 的内存陷阱,并演示如何使用 json/v2 高效地实现流式处理大规模 JSON 数据,彻底告别内存爆炸的烦恼。 ...

August 9, 2025 · 6 min · Tony Bai

slog 如何同时输出到控制台和文件?MultiHandler 提案或将终结重复造轮子

本文永久链接 – https://tonybai.com/2025/07/29/slog-multihandler 大家好,我是Tony Bai。 自 log/slog 在 Go 1.21 中引入以来,一个常见的需求始终困扰着开发者:如何将日志同时发送到多个目的地,并为每个目的地设置不同的日志级别?尽管社区已涌现出 samber/slog-multi 等优秀的三方库,但关于“标准库是否应原生支持”的讨论从未停止。最近,一项编号为#65954 的提案,建议在 log/slog 中加入 MultiHandler,获得了 Go 官方的 [likely accept] 评级。本文将带您回顾该提案从被质疑到被接受的全过程,深入探讨其背后的设计权衡。 ...

July 29, 2025 · 5 min · Tony Bai

Go encoding/json/v2提案:JSON处理新引擎

本文永久链接 – https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine Go标准库中的encoding/json包,作为Go社区广泛使用的JSON处理工具,至今已走过十余年。凭借其将JSON数据与原生Go类型相互转换的能力、通过struct tag自定义字段表示的灵活性,以及Go类型自定义JSON格式的特性,赢得了Go开发者的青睐。 ...

February 5, 2025 · 18 min · Tony Bai

Go开发者的密码学导航:crypto库使用指南

本文永久链接 – https://tonybai.com/2024/10/19/go-crypto-package-design-deep-dive Go号称“开箱即用”,这与其标准库的丰富功能和高质量是分不开的。而在Go标准库中,crypto库(包括crypto包、crypto目录下相关包以及golang.org/x/crypto下的补充包)又是Go社区最值得称道的Go库之一。 ...

October 19, 2024 · 25 min · Tony Bai

十分钟入门Go语言

本文永久链接 – https://tonybai.com/2023/02/23/learn-go-in-10-min 本文旨在带大家快速入门Go语言,期望小伙伴们在花费十分钟左右通读全文后能对Go语言有一个初步的认知,为后续进一步深入学习Go奠定基础。 ...

February 23, 2023 · 23 min · Tony Bai

Go编程语言与环境:万字长文复盘导致Go语言成功的那些设计决策[译]

本文永久链接 – https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment 美国计算机学会通讯(Communications of the ACM)期刊2022年5月第65卷第5期将发表一篇有关Go语言的综述类Paper:《Go编程语言与环境》,这类综述类文章只有资深的Go核心团队的人才“有资格”写,该文的作者列表印证了这一点,他们是Russ Cox,Robert Griesemer,Rob Pike,Ian Lance Taylor和Ken Thompson,都是Go语言核心团队耳闻能详的人物。 ...

May 4, 2022 · 30 min · Tony Bai