Web Analytics

Go工具链进化:go.mod新增ignore指令,破解混合项目构建难题

Go工具链进化:go.mod新增ignore指令,破解混合项目构建难题 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

May 22, 2025 · 8 min · Tony Bai

代码覆盖率新玩法:Russ Cox教你用差异化分析加速Go调试

代码覆盖率新玩法:Russ Cox教你用差异化分析加速Go调试 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

May 7, 2025 · 7 min · Tony Bai

世界读书日:如何高效阅读“砖头”技术书?我的心法分享(文末赠书)

世界读书日:如何高效阅读“砖头”技术书?我的心法分享(文末赠书) - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 23, 2025 · 8 min · Tony Bai

Go testing包将迎来新增强:标准化属性与持久化构件API即将落地

Go testing包将迎来新增强:标准化属性与持久化构件API即将落地 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 7, 2025 · 10 min · Tony Bai

深入GOCACHEPROG:Go构建缓存的自定义扩展

本文永久链接 – https://tonybai.com/2025/03/04/deep-dive-into-gocacheprog-custom-extensions-for-go-build-cache 背景 众所周知,Go build cache是在Go 1.10版本加入到Go工具链中的,缓存的主要目标是避免重复编译相同的代码,从而加快构建速度。 默认情况下,Go构建缓存位于用户主目录下的一个特定目录中,例如,Linux上通常是$HOME/.cache/go-build,Windows上是%LocalAppData%\go-build)。Mac上则是$HOME/Library/Caches/go-build。当然,Go开发者也可以通过GOCACHE环境变量自定义缓存位置。构建缓存的目录布局结构如下: ...

March 4, 2025 · 18 min · Tony Bai

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

本文永久链接 – https://tonybai.com/2025/02/16/some-changes-in-go-1-24 北京时间2025年2月12日,恰逢中国传统元宵佳节,远在美国的Go团队正式发布了Go 1.24的第一个版本Go 1.24.0。这也是Go团队在更换Tech Leader为Austin Clements后发布的首个大版本。 ...

February 16, 2025 · 16 min · Tony Bai

2024年Go语言盘点:排名历史新高,团队新老传承

2024年Go语言盘点:排名历史新高,团队新老传承 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

January 6, 2025 · 12 min · Tony Bai

Go 1.24新特性前瞻:工具链和标准库

本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中,我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文,重点介绍Go 1.24在工具链和标准库方面的重要更新,供大家参考。 ...

December 17, 2024 · 33 min · Tony Bai

一文搞懂如何在Go包中支持Hash-Based Bisect调试

本文永久链接 – https://tonybai.com/2024/mm/dd/how-to-support-hash-based-bisect-in-go-package bisect是一个英文动词,意为“二分”或“分成两部分”。在数学和计算机科学中,通常指将一个区间或一个集合分成两个相等的部分。 对于程序员来说,最熟悉的bisect应用莫过于下面两个: ...

November 24, 2024 · 17 min · Tony Bai

Go语言演进的双保险:GOEXPERIMENT与GODEBUG

本文永久链接 – https://tonybai.com/2024/10/11/go-evolution-dual-insurance-goexperiment-godebug Go语言自诞生以来就以其简洁、高效和强大的并发支持而闻名,Go团队承诺保持Go1向后兼容性,以确保用户的代码在未来的版本中继续正常运行。然而,保持语言的稳定性与不断创新(增加新特性)之间的平衡一直是Go团队面临的挑战。为了应对这一挑战,Go语言引入了两个关键机制:GOEXPERIMENT和GODEBUG来平衡新功能的试验、稳定发布和向后兼容。这两个机制共同构成了Go语言特性发布的“双保险”,确保语言能够稳步前进的同时,不会因为激进的改变而影响现有代码的稳定性。本文就来简单探讨一下这两个机制是如何保障Go语言新特性稳定发布的。 1. GOEXPERIMENT:新特性的摇篮 GOEXPERIMENT是一个Go语言的环境变量,是用于控制实验性特性的机制。它允许开发者在编译时(使用go build、go install、go run或go test)启用一些尚未正式发布的语言特性或优化。通过GOEXPERIMENT,Go团队能够在正式发布之前广泛测试新功能,收集反馈并进行必要的调整。 ...

October 11, 2024 · 12 min · Tony Bai