Web Analytics

Go 标准库提供一个“Must” 函数?社区关于“断言式初始化”的思考

本文永久链接 – https://tonybai.com/2025/10/07/proposal-must-do 大家好,我是Tony Bai。 if err != nil 不仅是 Go 代码中最常见的片段,更是其错误处理哲学的基石。它强制开发者在每一个可能出错的地方,都必须直面失败的可能性。然而,当一个错误在理论上可能发生,但在实践中(尤其是在处理静态、已知的常量时)又“不可能”发生时,这种严谨性是否就变成了一种冗余的样板代码? 这种在便利性与哲学纯粹性之间的张力并非新生事物。Go 标准库自身,就在特定场景下为我们提供了“捷径”。例如,text/template 包就提供了一个 Must 函数: ...

October 7, 2025 · 6 min · Tony Bai

Go 考古:Slice 的“隐秘角落”——只读切片与扩容策略的权衡

本文永久链接 – https://tonybai.com/2025/10/02/go-archaeology-slice 大家好,我是Tony Bai。 slice(切片),可以说是 Go 语言中最重要、也最常用的数据结构,没有之一。我们每天都在使用它,尤其是 append 函数,它就像一个魔术师,总能“恰到好处”地为我们管理好底层数组的容量,让我们几乎感受不到内存分配的烦恼。 ...

October 2, 2025 · 12 min · Tony Bai

除了技术能力,什么决定了软件工程师的上限?答案是“品味”

本文永久链接 – https://tonybai.com/2025/09/30/good-taste-in-software-engineering 大家好,我是Tony Bai。 在软件工程领域,我们习惯于用“技术能力”(Technical Skill)来衡量一位工程师的优劣。他是否精通并发模型?能否写出高性能的代码?对底层原理的理解有多深?这些能力可以通过学习和重复练习来获得,是我们评价体系中的“硬通货”。 ...

September 30, 2025 · 7 min · Tony Bai

“自立程序员宣言”解读:这不就是我们一直在说的Go语言哲学吗?

“自立程序员宣言”解读:这不就是我们一直在说的Go语言哲学吗? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

September 26, 2025 · 6 min · Tony Bai

“我们放弃了”——Go 团队坦诚布公,聊聊那些可能永远不会加入 Go 的功能

本文永久链接 – https://tonybai.com/2025/09/22/go-team-gave-up-on-features 大家好,我是Tony Bai。 在 GopherCon Europe 2025 的 Go 团队座谈会上,Michael Stapelberg(负责go protobuf)、Damien Neil(负责Go安全相关)、Michael Pratt(负责Go运行时和Go性能相关) 和 Jonathan Amsterdam(log/slog作者,负责Go工具相关) 四位核心成员与社区进行了一场坦诚的对话。他们不仅分享了诸如官方 MCP SDK、“裸金属”Go 等激动人心的进展,更以一种罕见的坦率,正面回应了社区长期以来关心的多个“老大难”问题——包括不可变类型、泛型错误处理和非 nil 指针。其中最引人注目的一句“我们放弃了”,几乎为 Go 语言在某些方向上的演进画上了句号。 ...

September 22, 2025 · 10 min · Tony Bai

面对“好主意”,为何开源项目的维护者必须学会说“不”?

面对“好主意”,为何开源项目的维护者必须学会说“不”? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

September 21, 2025 · 5 min · Tony Bai

从arena、memory region到runtime.free:Go内存管理探索的务实转向

本文永久链接 – https://tonybai.com/2025/09/18/go-runtime-free-proposal 大家好,我是Tony Bai。 Go 的垃圾收集器(GC)是其简单性和并发安全性的基石,但也一直是性能优化的焦点。近年来,Go 核心团队为了进一步降低 GC 开销,进行了一系列前沿探索:从备受争议的arena 实验,到更优雅但实现复杂的 memory regions构想,最终,焦点似乎汇聚在了一项更务实、更具潜力的提案上——runtime.free。这项编号为 #74299 的实验性提案,正试图为 Go 的内存管理引入一个革命性的新维度:允许编译器和部分标准库在特定安全场景下,绕过 GC,直接释放和重用内存。其原型已在 strings.Builder 等场景中展现出高达 2 倍的性能提升。 ...

September 18, 2025 · 7 min · Tony Bai

Dave Cheney 复出首谈:那些我反复强调的Go编程模式

本文永久链接 – https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go 大家好,我是Tony Bai。 在阔别公众视野数年后,Go 社区的传奇人物 Dave Cheney 终于重返 GopherCon Europe 的舞台,发表了一场备受瞩目的复出首谈(注:我印象中的回归首谈^_^)。这场题为《那些我反复强调的 Go 编程之事》的演讲,没有追逐时髦的技术热点,而是选择回归编程的本源,分享了他十五年 Go 编程生涯中,那些被反复实践、验证并沉淀下来的核心理念。 ...

September 17, 2025 · 9 min · Tony Bai

Go 语言的灵魂之问:当“简单”变得“复杂”

Go 语言的灵魂之问:当“简单”变得“复杂” - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

September 16, 2025 · 5 min · Tony Bai

context:Go 语言的“天问”,你真的懂了吗?

context:Go 语言的“天问”,你真的懂了吗? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

September 15, 2025 · 4 min · Tony Bai