跨越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

Go 考古:错误处理的“语法糖”之战与最终的“投降”

本文永久链接 – https://tonybai.com/2025/10/28/go-archaeology-error-handling 大家好,我是Tony Bai。 if err != nil,这可能是 Go 语言中最具辨识度,也最富争议性的代码片段。它如同一块磐石,奠定了 Go 错误处理哲学的基石,但也因其“繁琐”而常年位居 Go 开发者年度调查“最不满意特性”榜首。 ...

October 28, 2025 · 9 min · Tony Bai

Go 考古:defer 的“救赎”——从性能“原罪”到零成本的“开放编码”

本文永久链接 – https://tonybai.com/2025/10/15/go-archaeology-defer 大家好,我是Tony Bai。 在 Go 语言的所有关键字中,defer 无疑是最具特色和争议的之一。它以一种近乎“魔法”的方式,保证了资源清理逻辑的执行,极大地提升了代码的可读性和健壮性。f, _ := os.Open(“…”); defer f.Close() 这一行代码,几乎是所有 Gopher 的肌肉记忆。 ...

October 15, 2025 · 9 min · Tony Bai

Go的“七宗罪”:一篇“Go依然不够好”如何引爆社区激辩?

本文永久链接 – https://tonybai.com/2025/08/25/go-is-still-not-good 大家好,我是Tony Bai。 在技术圈,平静的湖面下往往暗流涌动。对于Go语言社区而言,这股潜藏已久的暗流,被近期的一篇名为《Go is still not good》的博文彻底引爆。作者Thomas Habets,一位自称拥有超过十年Go使用经验的资深开发者,在他的这篇文章中系统性地列举了他眼中Go语言的“七宗罪”。这篇文章迅速登上Hacker News热榜,吸引了超过700条评论,形成了一场规模空前的社区大辩论。 ...

August 25, 2025 · 11 min · Tony Bai

美国运通复盘 Go 语言实践:从依赖管理到并发模型,七大经验教训全解析

美国运通复盘 Go 语言实践:从依赖管理到并发模型,七大经验教训全解析 - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

July 24, 2025 · 5 min · Tony Bai

Go errors.Join:是“天赐之物”还是“潘多拉魔盒”?——深入错误聚合的适用场景与最佳实践

本文永久链接 – https://tonybai.com/2025/06/20/about-errors-join 大家好,我是Tony Bai。 错误处理,无疑是软件开发中永恒的核心议题之一。Go 语言以其独特的、显式的错误处理机制(即 error 作为普通值返回)而著称,这种设计强调了对错误的关注和及时处理。自 Go 1.13 引入错误包装 (wrapping) 机制以来,Go 的错误处理能力得到了显著增强。而在Go 1.20 版本中,标准库 errors 包更是带来了一个备受关注的新成员:errors.Join() 函数。 ...

June 20, 2025 · 14 min · Tony Bai

爽就完了!Go语言的“简单之美”为何让开发者直呼过瘾?

爽就完了!Go语言的“简单之美”为何让开发者直呼过瘾? - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

June 12, 2025 · 8 min · Tony Bai

“这代码迟早出事!”——复盘线上问题:六个让你头痛的Go编码坏味道

本文永久链接 – https://tonybai.com/2025/05/31/six-smells-in-go 大家好,我是Tony Bai。 在日常的代码审查 (Code Review) 和线上问题复盘中,我经常会遇到一些看似不起眼,却可能埋下巨大隐患的 Go 代码问题。这些“编码坏味道”轻则导致逻辑混乱、性能下降,重则引发数据不一致、系统崩溃,甚至让团队成员在深夜被告警声惊醒,苦不堪言。 ...

May 31, 2025 · 24 min · Tony Bai

当Gopher拥有了“Go语言女友”:一张图带你读懂Go的那些“可爱”特性

当Gopher拥有了“Go语言女友”:一张图带你读懂Go的那些“可爱”特性 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

May 30, 2025 · 7 min · Tony Bai

WaitGroup.Go要来了?Go官方提案或让你告别Add和Done样板代码

WaitGroup.Go要来了?Go官方提案或让你告别Add和Done样板代码 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 3, 2025 · 7 min · Tony Bai