别再无脑 go get @latest 了!你的服务器可能下一秒就被黑客接管
本文永久链接 – https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling 大家好,我是Tony Bai。 试想一个极其真实的“黑色星期五”场景: 下班前一小时,你为了修复一个无关紧要的小 Bug,或者只是心血来潮想把项目里的依赖库清理一下,于是你顺手在终端里敲下了极其熟练的几个字符: ...
本文永久链接 – https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling 大家好,我是Tony Bai。 试想一个极其真实的“黑色星期五”场景: 下班前一小时,你为了修复一个无关紧要的小 Bug,或者只是心血来潮想把项目里的依赖库清理一下,于是你顺手在终端里敲下了极其熟练的几个字符: ...
本文永久链接 – https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management 大家好,我是Tony Bai。 我们都知道,Go 推荐使用 Go Modules 来管理依赖。但在 Go 源码树的最深处,隐藏着一个鲜为人知的秘密:Go 标准库 (std) 和工具链 (cmd) 竟然依然在使用 vendor 目录来管理它们的外部依赖。 ...
别再盯着 go.sum 看了:它不是你想象中的那个 Lockfile - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...
本文永久链接 – https://tonybai.com/2025/11/05/proposal-remove-godebug-flags 大家好,我是Tony Bai。 自 2012 年 Go 1 发布以来,“向后兼容性” (Go 1 compatibility guarantee) 不仅是一份承诺,更是 Go 语言赢得全球开发者信任的基石。然而,为了在不违背这份承诺的前提下修复 bug、引入新行为,Go 团队创造了一个强大的“安全阀”——GODEBUG 环境变量。 ...
Go 模块构建与依赖管理:我们到底在“折腾”什么? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...
本文永久链接 – https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes 大家好,我是Tony Bai。 GopherCon 2025 贡献者峰会刚刚落下帷幕。在这场Go核心团队与全球顶尖贡献者齐聚一堂的闭门会议中,Go语言的未来方向被激烈地讨论和塑造。这些讨论或许不像发布泛型那样惊天动地,但它们如同地壳深处的板块运动,深刻地影响着Go生态的未来走向——一个更加成熟、务实,并决心直面企业级开发真实痛点的Go正在到来。 ...
本文永久链接 – https://tonybai.com/2025/08/28/go-primer-published 大家好,我是Tony Bai。 前不久,在知乎上看到一个关于 Go 社区的帖子,其中一条评论让我感慨良多: “GopherChina 都没了,国内还有几人坚持?Tony Bai好像还在更新” ...
本文永久链接 – https://tonybai.com/2025/08/15/some-changes-in-go-1-25 大家好,我是Tony Bai。 北京时间2025年8月13日,Go 团队如期发布了 Go 语言的最新大版本——Go 1.25。按照惯例,每次 Go 大版本发布时,我都会撰写一篇“Go 1.x 中值得关注的几个变化”的文章。自 2014 年的 Go 1.4 版本起,这一系列文章已经伴随大家走过了十一个年头。 ...
本文永久链接 – https://tonybai.com/2025/08/07/fork-go-module 大家好,我是Tony Bai。 今天,我想和你聊一个几乎每个 Go 开发者都经历过的场景,一种我们圈内人“只可意会,不可言传”的痛苦。我称之为 Go 模块的**“分叉之痛” (The Forking Pain)**。 ...
本文永久链接 – https://tonybai.com/2025/07/22/go-swiss-table-map-user-report 大家好,我是Tony Bai。 Datadog 的故事始于一次对Go 1.24内存回归问题的追踪。在与 Go 社区协作修复了该问题后,他们在部署修复版本的过程中,观察到了一个意料之外的现象:在高流量环境中,内存使用不仅恢复了正常,甚至大幅下降。一个名为 shardRoutingCache 的巨型内存 map,其堆内存占用减少了约 500 MiB,考虑到 Go 的垃圾回收机制(GOGC=100),这相当于节省了近 1 GiB 的物理内存。 ...