别再瞎写 go.mod 了!一行 go 1.xx,竟藏着 7 个足以颠覆你认知的“秘密开关”

本文永久链接 – https://tonybai.com/2026/05/13/go-mod-hidden-features-7-secret-switches-in-go-version 大家好,我是Tony Bai。 在这个“CV 工程师(复制粘贴工程师)”盛行的时代,很多 Go 开发者在新建项目时,不会使用go mod init来初始化一个模块,而是会熟练地从别的 go.mod 文件里,复制粘贴那行 go 1.xx,或者直接复制一个starter 脚手架Go 工程。我们似乎都默认了go.mod中go 1.xx 的作用——“嗯,就是声明一下我用的 Go 版本嘛,不重要。” ...

May 13, 2026 · 9 min · Tony Bai

别再无脑 go get @latest 了!你的服务器可能下一秒就被黑客接管

本文永久链接 – https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling 大家好,我是Tony Bai。 试想一个极其真实的“黑色星期五”场景: 下班前一小时,你为了修复一个无关紧要的小 Bug,或者只是心血来潮想把项目里的依赖库清理一下,于是你顺手在终端里敲下了极其熟练的几个字符: ...

March 19, 2026 · 9 min · Tony Bai

“你装了 Go 1.26,却写不了 Go 1.26 的代码?”——复盘 go mod init 的降级风波

本文永久链接 – https://tonybai.com/2026/02/22/go-1-26-go-mod-init-downgrade-collision-review 大家好,我是Tony Bai。 2026年2月,Go 1.26 带着众多瞩目的新特性(如期待已久的 new(expr) 语法糖、全面启用的 Green Tea GC)正式发布。你兴奋地更新了本地的工具链,迫不及待地打开终端,想要体验一把用 new(42) 直接初始化指针的快感。 ...

February 22, 2026 · 8 min · Tony Bai

探索Go gcflags的使用模式与完整参数选项列表

探索Go gcflags的使用模式与完整参数选项列表 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

January 22, 2025 · 7 min · Tony Bai

Go工具链版本已不由你定:go和toolchain指令详解

本文永久链接 – https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod Go语言自诞生以来,就一直将向后兼容性作为其核心理念之一。Go1兼容性承诺确保了为Go1.0编写的代码能够在后续的Go1.x版本中持续正确地编译和运行。这一承诺为Go的成功奠定了坚实的基础,它不仅保障了稳定性,也大大减轻了随着语言演进带来的代码维护负担。然而,兼容性的内涵并不仅限于向后兼容。向前兼容性,即旧版本的工具链能够优雅地处理针对新版本编写的代码,对于打造流畅的开发体验同样至关重要。 在Go 1.21版本之前,向前兼容性在某种程度上是一个被忽视的领域。尽管go.mod文件中的go指令可以标明模块预期的Go版本,但在实际中,它更像是一个指导性建议,而非强制性规则。旧版本的Go工具链会尝试编译那些需要较新版本的代码,这经常导致令人困惑的错误,更有甚者会出现“静默成功”的情况——代码虽然可以编译,但由于较新版本中的细微改动,其运行时行为可能并不正确。 ...

January 14, 2025 · 18 min · Tony Bai

聊聊Go语言的向前兼容性和toolchain规则

本文永久链接 – https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule Go语言在发展演进过程中一直十分注重向后兼容性(backward compatibility),在Go 1.0版本发布之初就发布了Go1兼容性承诺,简单来说就是保证使用新版本Go(比如Go 1.21版本)可以正常编译和运行老版本的Go代码(比如使用Go 1.18版本语法编写的go代码),不会出现breaking change(其实也不是绝对的不会出现)。 ...

September 10, 2023 · 12 min · Tony Bai

Go 1.8中值得关注的几个变化

在已经过去的2016年,Go语言继在2009年之后再次成为编程语言界的明星- 问鼎TIOBE 2016年度语言。这与Go team、Go community和全世界的Gophers的努力是分不开的。按计划在这个2月份,Go team将正式发布Go 1.8版本(截至目前,Go的最新版本是Go 1.8rc3)。在这里我们一起来看一下在Go 1.8版本中都有哪些值得Gopher们关注的变化。 ...

February 3, 2017 · 19 min · Tony Bai