终结十年纠结:Go 新提案允许 Example 支持任意函数签名

本文永久链接 – https://tonybai.com/2026/06/09/go-proposal-examples-to-support-arbitrary-function-signatures 大家好,我是Tony Bai。 在 Go 语言的开发日常中,编写 ExampleXxx 示例代码不仅是完善文档的必经之路,更是一门绝佳的“活文档”艺术。 通过在 “_test.go” 文件中编写以 Example 开头的函数,并在末尾加上 // Output: 注释,Go 官方的 go doc 和 pkgsite 就能在网页上直接渲染出可交互、可直接在浏览器中运行(Playable)的示例代码。 ...

June 9, 2026 · 6 min · Tony Bai

别把 Go 写成 Java:毁掉项目从过度架构开始

本文永久链接 – https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting 大家好,我是Tony Bai。 前不久,Go 语言社区 Reddit (r/golang) 上爆发了两场激烈的争论。 这两个帖子的主题直击了无数 Go 开发者的灵魂深处: 我们该如何构建一个大型的 Go 模块化单体架构,而不被复杂的“架构设计”淹没? 为什么现在的 Go 项目里,pkg 和 internal 目录被滥用得如此令人发指? 如果你正在维护一个中大型的 Go 后端项目,你大概率经历过这样的绝望时刻:为了加一个极其简单的业务字段,你需要穿透 handler、usecase、domain、repository、adapter 等足足五层抽象结构;你的项目根目录下躺着一个 pkg 文件夹,里面又套着 internal,代码藏在七八级目录深处。 ...

June 5, 2026 · 8 min · Tony Bai

再见样板代码!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

别再像 2015 年那样写 Go 了:Modern Go 终极进化指南

本文永久链接 – https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26 大家好,我是Tony Bai。 Go 语言在业界最著名的标签之一就是“向后兼容承诺(Go 1 Compatibility Promise)”。一份 10 年前写下的 Go 1.4 代码,在今天的 Go 1.26编译器下依然能完美编译并运行。 ...

March 2, 2026 · 8 min · Tony Bai

当“安全性”遭遇“交付速度”:2026 年,我为什么告别了 Rust

本文永久链接 – https://tonybai.com/2026/02/21/safety-vs-delivery-speed-why-farewell-rust-in-2026 大家好,我是Tony Bai。 在软件工程的铁三角中,Rust 占据了“安全性”与“性能”的绝对高地。凭借借用检查器(Borrow Checker)和极其严格的类型系统,它向开发者承诺了一个没有内存错误、没有空指针崩溃的完美世界。 ...

February 21, 2026 · 8 min · Tony Bai

数据打脸刻板印象:Go 的“样板代码”竟然和 Rust 一样多?

本文永久链接 – https://tonybai.com/2026/02/08/go-boilerplate-code-vs-rust-data-refutes-stereotypes 大家好,我是Tony Bai。 在编程语言的鄙视链中,Go 语言常常因为其“繁琐”而饱受诟病。 “if err != nil 写断手”、“缺乏语法糖”、“到处都是重复的样板代码”…… 这些似乎已经成为了 Go 的标签。 ...

February 8, 2026 · 5 min · Tony Bai

再见,丑陋的 container/heap!Go 泛型堆 heap/v2 提案解析

本文永久链接 – https://tonybai.com/2026/02/04/goodbye-container-heap-go-generic-heap-heap-v2-proposal 大家好,我是Tony Bai。 每一个写过 Go 的开发者,大概都经历过被 container/heap 支配的恐惧。 你需要定义一个切片类型,实现那个包含 5 个方法的 heap.Interface,在 Push 和 Pop 里进行那令人厌烦的 any 类型断言,最后还要小心翼翼地把这个接口传给 heap.Push 函数…… ...

February 4, 2026 · 7 min · Tony Bai

Go 语言的“魔法”时刻:如何用 -toolexec 实现零侵入式自动插桩?

本文永久链接 – https://tonybai.com/2026/01/19/unleashing-the-go-toolchain 大家好,我是Tony Bai。 “Go 语言以简洁著称,但在可观测性(Observability)领域,这种简洁有时却是一种负担。手动埋点、繁琐的初始化代码、版本升级带来的破坏性变更……这些都让 Gopher 们痛苦不已。 ...

January 19, 2026 · 8 min · Tony Bai

别再“Vibe Coding”了:2025 年专业开发者是如何驾驭 Coding Agent的?

本文永久链接 – https://tonybai.com/2026/01/07/stop-vibe-coding-professional-developers-master-coding-agent-2025 大家好,我是Tony Bai。 在社交媒体上,我们经常看到这样的神话:“我用 AI Agent,只凭感觉(Vibe)就写出了整个应用,甚至不需要看代码。” 这种被称为“Vibe Coding”的现象真的代表了专业开发的未来吗? ...

January 7, 2026 · 5 min · Tony Bai

“为什么很多工程师还在无视 AI 编程?”—— 这里的答案,或许决定了你三年后的身价

本文永久链接 – https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming 大家好,我是Tony Bai。 “我注意到一件让我非常惊讶的事:似乎大多数软件工程师并没有充分利用(甚至根本不用)像 Claude Code、Cursor 或 GitHub Copilot 这样的 AI 编程工具。 ...

December 29, 2025 · 5 min · Tony Bai