别再像 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编译器下依然能完美编译并运行。 ...
本文永久链接 – 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编译器下依然能完美编译并运行。 ...
本文永久链接 – https://tonybai.com/2026/01/04/stop-lying-to-the-compiler 大家好,我是Tony Bai。 “半夜被值班的运维同事叫醒,发现生产环境崩了,原因是一个深藏在业务逻辑里的 nil 指针异常。” 这个场景,对于每个后端开发者来说都是挥之不去的噩梦。事后复盘时,我们往往会懊恼:“为什么这里没加 if != nil 判断?”然后,我们在代码里撒上一把防御性检查的“盐”,祈祷下次好运。 ...
Brad Fitzpatrick 也等不及了!sync.Map 的泛型进化与 sync/v2 的诞生之路 - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...
本文永久链接 – https://tonybai.com/2025/10/30/type-theory-intro-for-gopher 大家好,我是Tony Bai。 你是否曾有过这样的经历:在浏览一个关于 Go 泛型或接口设计的 GitHub issue 或技术提案时,评论区里的大佬们突然开始讨论 “Sum Type”、“Product Type”、“Parametric Polymorphism” 或是 “Higher-Kinded Types”。一瞬间,你感觉自己仿佛闯入了一个学术研讨会,这些看似熟悉又陌生的词汇让你一头雾水,只想默默关掉页面。 ...
本文永久链接 – https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases 大家好,我是Tony Bai。 “要不……我们重写吧?” 在任何一个发展到一定阶段的 Go 项目中,这句话都像一个幽灵,反复出现在技术讨论中。面对一个布满补丁、逻辑盘根错节、维护成本日益高昂的“大泥球” (Big Ball of Mud),彻底推倒重来的想法总是充满了诱惑。 ...
本文永久链接 – https://tonybai.com/2025/09/04/simple-is-not-easy 大家好,我是Tony Bai。 在软件工程领域,有些演讲如同灯塔,其光芒足以穿透时间的迷雾,持续为后来者指引方向。Clojure语言的创造者Rich Hickey在2011年的Strange Loop大会上发表的“Simple Made Easy”,正是这样一例。他以一种近乎哲学家的思辨,对我们行业中最被滥用、最被误解的两个词——“简单”(Simple)和“容易”(Easy)——进行了本源性的解构。 ...
本文永久链接 – https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize 大家好,我是Tony Bai。 最近在思考Go语言的发展时,不禁让我想起了当年学习C++的经历。Bjarne Stroustrup在《C++程序设计语言(特别版)》中就专门强调了“现代 C++”(Modern C++)的编程风格,鼓励使用模板、STL等新特性来编写更优雅、更高效的C++代码。 ...
本文永久链接 – https://tonybai.com/2023/06/04/reflection-programming-guide-in-go 反射是一种编程语言的高级特性,它允许程序在运行时检视自身的结构和行为。通过反射,程序可以动态地获取类型(type)与值(value)等信息,并对它们进行操作,诸如修改字段、调用方法等,这使得程序具有更大的灵活性和可扩展性。 不过,反射虽然具有强大的功能,但也存在一些缺点。由于反射是在运行时进行的,因此它比直接调用代码的性能要差。此外,反射还可能导致代码的可读性和维护性降低,因为它使得程序行为更加难以预测和理解。因此,在使用反射时需要注意性能和可维护性。 ...
本文永久链接 – https://tonybai.com/2022/04/20/some-changes-in-go-1-18 从3月23日开始,我居家办公了20+天。这期间我本来是应该有时间写下这篇综述类文章的,但是封了两天后,抢菜、带娃的事情就开始困扰着我。我实在没有下笔写下这篇文章的心思。4月13日终于解封了,上班后的气象就是不一样,人也精神了很多,于是这篇文章也被提上了日程。希望新冠疫情早日结束吧,希望每个人都能在晴朗的户外享受那春日的暖意。 ...
本文永久链接 – https://tonybai.com/2022/03/25/intro-generics Go核心团队在官博上发布了一篇名为《An Introduction To Generics》的文章,该文章基于Robert Griesemer和Ian Lance Taylor在2021年GopherCon大会上的演讲,这是Go团队发布Go 1.18版本后官博发表的首篇有关Go泛型的文章,值得大家认真阅读,这里将全文做一下翻译,供大家参考。 ...