Web Analytics

别再无脑 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 标准库竟然也用 vendor?std 和 cmd 模块是如何管理外部依赖的

本文永久链接 – https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management 大家好,我是Tony Bai。 我们都知道,Go 推荐使用 Go Modules 来管理依赖。但在 Go 源码树的最深处,隐藏着一个鲜为人知的秘密:Go 标准库 (std) 和工具链 (cmd) 竟然依然在使用 vendor 目录来管理它们的外部依赖。 ...

January 28, 2026 · 4 min · Tony Bai

别再盯着 go.sum 看了:它不是你想象中的那个 Lockfile

别再盯着 go.sum 看了:它不是你想象中的那个 Lockfile - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

January 6, 2026 · 4 min · Tony Bai

GODEBUG 的“技术债”清算:Go 团队提出全新生命周期管理策略

本文永久链接 – https://tonybai.com/2025/11/05/proposal-remove-godebug-flags 大家好,我是Tony Bai。 自 2012 年 Go 1 发布以来,“向后兼容性” (Go 1 compatibility guarantee) 不仅是一份承诺,更是 Go 语言赢得全球开发者信任的基石。然而,为了在不违背这份承诺的前提下修复 bug、引入新行为,Go 团队创造了一个强大的“安全阀”——GODEBUG 环境变量。 ...

November 5, 2025 · 6 min · Tony Bai

Go 模块构建与依赖管理:我们到底在“折腾”什么?

Go 模块构建与依赖管理:我们到底在“折腾”什么? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

October 27, 2025 · 5 min · Tony Bai

直面依赖之痛与TLS简化:GopherCon 2025贡献者峰会核心纪要深度解读

本文永久链接 – https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes 大家好,我是Tony Bai。 GopherCon 2025 贡献者峰会刚刚落下帷幕。在这场Go核心团队与全球顶尖贡献者齐聚一堂的闭门会议中,Go语言的未来方向被激烈地讨论和塑造。这些讨论或许不像发布泛型那样惊天动地,但它们如同地壳深处的板块运动,深刻地影响着Go生态的未来走向——一个更加成熟、务实,并决心直面企业级开发真实痛点的Go正在到来。 ...

September 11, 2025 · 8 min · Tony Bai

我的 Gopher “长期主义”:从《Go语言第一课》新书说起

本文永久链接 – https://tonybai.com/2025/08/28/go-primer-published 大家好,我是Tony Bai。 前不久,在知乎上看到一个关于 Go 社区的帖子,其中一条评论让我感慨良多: “GopherChina 都没了,国内还有几人坚持?Tony Bai好像还在更新” ...

August 28, 2025 · 8 min · Tony Bai

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

本文永久链接 – 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 版本起,这一系列文章已经伴随大家走过了十一个年头。 ...

August 15, 2025 · 8 min · Tony Bai

Go 模块的“分叉之痛”:一个提案能否终结“全局替换”的噩梦?

本文永久链接 – https://tonybai.com/2025/08/07/fork-go-module 大家好,我是Tony Bai。 今天,我想和你聊一个几乎每个 Go 开发者都经历过的场景,一种我们圈内人“只可意会,不可言传”的痛苦。我称之为 Go 模块的**“分叉之痛” (The Forking Pain)**。 ...

August 7, 2025 · 8 min · Tony Bai

Go 1.24用户报告:Datadog如何借助 Swiss Tables版map节省数百 GB 内存?

本文永久链接 – 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 的物理内存。 ...

July 22, 2025 · 6 min · Tony Bai