再见样板代码!Go 官方新提案:函数一键转接口

本文永久链接 – https://tonybai.com/2026/06/02/no-more-boilerplate-go-proposal-function-to-interface-conversion 大家好,我是Tony Bai。 在 Go 语言日常开发中,有一个设计几乎人人写过,但写多了又让人觉得极其繁琐、甚至有些“脱裤子放屁”的样板代码。 假设你需要一个只读数据的 io.Reader,但它的行为非常简单(比如只是为了在测试里模拟数据),你通常需要这样写: ...

June 2, 2026 · 7 min · Tony Bai

从 Go 迁移到 Rust

本文永久链接 – https://tonybai.com/2026/05/27/migrate-go-to-rust 大家好,我是Tony Bai。 在现代后端系统编程领域,Go 和 Rust 无疑是最耀眼的两大双子星。它们都拥有静态类型、编译型、单二进制文件分发等优异特性。然而,这两门语言在底层的设计哲学、运行时权衡以及开发者体验上,走向了截然不同的方向。 ...

May 27, 2026 · 33 min · Tony Bai

十年难题终获突破:揭秘 Go 1.27 接口逃逸分析优化

本文永久链接 – https://tonybai.com/2026/05/22/go-1-27-interface-escape-analysis-optimization-breakthrough 大家好,我是Tony Bai。 在日常的 Go 语言开发中,有这样一段极其普通、普通到闭着眼睛都能敲出来的代码: val := 1000 fmt.Sprintf("Result: %d", val) 如果我告诉你,这短短两行代码,就是导致你高并发服务 CPU 飙升、GC(垃圾回收)频繁卡顿的元凶之一,你会不会觉得我在危言耸听? ...

May 22, 2026 · 8 min · Tony Bai

真相调查:Go 语言真的消灭了 Undefined Behavior 吗?

本文永久链接 – https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation 大家好,我是Tony Bai。 在系统编程的古老传说中,流传着一个关于“鼻恶魔”(Nasal Demons)的笑话。 这个梗源自 comp.std.c 新闻组,它是对 C/C++ 语言中“未定义行为”(Undefined Behavior,以下简称 UB)最生动也最恐怖的诠释。根据 ISO C++ 标准,如果你的代码触犯了 UB(例如数组越界、有符号整数溢出、空指针解引用),编译器可以“为所欲为”。 ...

March 16, 2026 · 12 min · Tony Bai

Go 泛型落地 4 年后,终于要支持泛型方法了!

本文永久链接 – https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods 大家好,我是Tony Bai。 “我们预计 Go 永远不会添加泛型方法。” —— Go FAQ (曾几何时) 对于许多期待 Go 泛型能像 C++ 或 Java 那样强大的开发者来说,这句话曾像一盆冷水。然而,就在最近,Go 语言之父之一、核心团队成员 Robert Griesemer 提交了一份重量级提案 #77273,正式建议为 Go 添加泛型方法 (Generic Methods) 的支持。 ...

January 24, 2026 · 7 min · Tony Bai

为什么 Go 社区强调避免不必要的抽象?—— 借用海德格尔哲学寻找“正确”的答案

本文永久链接 – https://tonybai.com/2026/01/16/go-community-the-right-kind-of-abstraction 大家好,我是Tony Bai。 “Go 的哲学强调避免不必要的抽象。” 这句话我们听过无数次。当你试图引入 ORM、泛型 Map/Reduce 、接口或者复杂的设计模式时,往往会收到这样的反馈。这句话本身没有错,但难点在于:到底什么是“不必要”的? ...

January 16, 2026 · 9 min · Tony Bai

跨越20年的对话:从 Eiffel 的“契约”到 Go 的“接口”

本文永久链接 – https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface 大家好,我是Tony Bai。 20年前,当我第一次翻开 Bertrand Meyer 的那本巨著**《面向对象软件构造》(Object-Oriented Software Construction)** 时,一种醍醐灌顶的感觉油然而生。书中那个名为 Eiffel 的语言,以及它所倡导的 “契约式设计” (Design by Contract, DbC),仿佛为当时混乱的软件开发世界点亮了一盏明灯。 ...

December 13, 2025 · 10 min · Tony Bai

Brad Fitzpatrick 也等不及了!sync.Map 的泛型进化与 sync/v2 的诞生之路

Brad Fitzpatrick 也等不及了!sync.Map 的泛型进化与 sync/v2 的诞生之路 - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

December 1, 2025 · 4 min · Tony Bai

“香蕉、猴子和整片丛林”:我们是否深陷于 OOP 的“优雅”陷阱?

本文永久链接 – https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming 大家好,我是Tony Bai。 Erlang 之父 Joe Armstrong 曾提出了一个关于面向对象编程(OOP)的、流传甚广的深刻比喻: “你想要一根香蕉,但你得到的却是一只拿着香蕉的猴子,以及整片丛林。” ...

November 29, 2025 · 8 min · Tony Bai

连 Rob Pike 都感到“担忧”:Go 1.26 SIMD 引入的新复杂性与应对之道

本文永久链接 – https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check 大家好,我是Tony Bai。 Go 1.26 将于11月份功能特性冻结,其最令人期待的实验特性之一,无疑是simd 包的引入。它承诺为 Go 开发者解锁 SIMD (Single Instruction, Multiple Data) 的强大能力,让我们能编写出榨干现代 CPU 向量化计算潜能的高性能代码。然而,在这片兴奋的浪潮之下,一个不和谐的声音却悄然响起,而这个声音,来自 Go 语言的联合创始人之一——Rob Pike。 ...

November 6, 2025 · 8 min · Tony Bai