本文永久链接 – https://tonybai.com/2025/10/02/go-archaeology-slice 大家好,我是Tony Bai。 slice(切片),可以说是 Go 语言中最重要、也最常用的数据结构,没有之一。我们每天都在使用它,尤其是 append 函数,它就像一个魔术师,总能“恰到好处”地为我们管理好底层数组的容量,让我们几乎感受不到内存分配的烦恼。 但你是否想过,这份“恰到好处”的背后,隐藏着怎样的代价与...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/30/good-taste-in-software-engineering 大家好,我是Tony Bai。 在软件工程领域,我们习惯于用“技术能力”(Technical Skill)来衡量一位工程师的优劣。他是否精通并发模型?能否写出高性能的代码?对底层原理的理解有多深?这些能力可以通过学习和重复练习来获得,是我们评价体系中的“硬通货”。 然而,github工程师Sean Goedecke在他最新的博文...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25 大家好,我是Tony Bai。 Go 1.25的发布,为我们带来了一个期待已久的“并发测试神器”—— testing/synctest。这个在Go 1.24中作为实验性功能首次亮相的包,承诺将我们从time.Sleep、channel和各种脆弱的同步技巧中解放出来,让我们能够编写出快速、可靠、确定性的并发测试。 然而,任何强大的新工具在投入真实世界的熔炉...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/28/how-top-performers-stand-out-in-the-age-of-ai 大家好,我是Tony Bai。 AI 正在以前所未有的速度重塑软件开发领域。从代码生成到信息检索,AI 工具无疑极大地提升了工程师的生产力。一个普遍的假设是,谁能更好地利用 AI,谁就能成为新时代的顶尖人才。然而,Dropbox 最近发布的一项内部研究,却对这个看似理所当然的结论提出了一个深刻的挑...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals 大家好,我是Tony Bai。 在 Go 语言中,结构体嵌入 (Embedding) 是一个强大而独特的特性,它为我们提供了一种优雅的“垂直组合”方式。然而,多年来,它的使用体验中一直存在一个广为人知的“反直觉”之处,一个让无数开发者(包括 Go 核心团队成员自己)都曾踩过的坑。 近日,一个旨在解决此问...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/26/self-reliant-programmer 大家好,我是Tony Bai。 “当代多数软件,对其用户而言是一种耻辱。” 最近,一篇措辞激烈、观点鲜明的《自立程序员宣言》(Self-Reliant Programmer Manifesto)在技术圈流传开来。它以一种近乎愤怒的姿态,抨击了现代软件开发中日益增长的复杂性、对臃肿工具的过度依赖以及脆弱的供应链。 对于许多沉浸在复杂框架和...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/25/go-security-past-present-and-future 大家好,我是Tony Bai。 在软件安全领域,最成功的战役,往往是那些从未被公众所知的“隐形战争”。当一门编程语言的安全性被认为是理所当然时,这背后必然有一支团队在持续不断地进行着防御、修复与规划。对于 Go 语言而言,这支团队就是 Google 内部的 Go 安全/密码学团队。 在今年的 GopherCon UK 大会上...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/24/evolving-your-go-api 大家好,我是Tony Bai。 你在 package 中导出的每一个 func 和 type,都是一份对用户的承诺。然而,变化是软件开发中唯一不变的真理。当需求变更、bug 修复、甚至认知升级时,你将如何修改这份“承诺”,同时又最大限度地减少对你和你的用户造成的破坏? 在最近的 GopherCon EU 大会上,来自 Google Go 团队的 Jonathan Amsterdam ...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries 大家好,我是Tony Bai。 对于大多数Go开发者来说,标准库似乎是一个浑然天成的整体。我们理所当然地使用着fmt、net/http和encoding/json,很少去思考它们内部的依赖关系和架构边界。然而,在标准库光鲜的外表之下,一场关于其核心架构的深刻变革正在悄然发生,而hash/maphash这个看似不起眼的包,...| Tony Bai
本文永久链接 - https://tonybai.com/2025/09/22/go-team-gave-up-on-features 大家好,我是Tony Bai。 在 GopherCon Europe 2025 的 Go 团队座谈会上,Michael Stapelberg(负责go protobuf)、Damien Neil(负责G| tonybai.com
本文永久链接 - https://tonybai.com/2025/09/09/the-power-of-ten-in-go 大家好,我是Tony Bai。 在软件工程领域,有些智慧是永恒的。 2006 年,NASA/JPL(喷气推进实验室)的 Gerard J. Holzmann 公布了其团| tonybai.com
本文永久链接 - https://tonybai.com/2025/08/28/go-primer-published 大家好,我是Tony Bai。 前不久,在知乎上看到一个关于 Go 社区的帖子,其中一条评论让我感慨良多: “GopherChina 都没了,国内还有几| tonybai.com
本文永久链接 - https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age 大家好,我是Tony Bai。 这是一个对初级工程师而言,最好也最坏的时代。 说它“最好”,是因为我们从未拥有过如此强大| tonybai.com
本文永久链接 - https://tonybai.com/2025/08/06/go-new-engine-of-old-languages 大家好,我是Tony Bai。 我先来描述一种编程语言生态,请你猜猜它是谁: 它诞生于 1995 年,旨在为当时一个叫“万维网”的新| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity) 大家好,我是Tony Bai。 最近,一张关于编程语言规范词数统计的图表,在技术圈广为流传。它以一种极其直观、甚至有些残酷的方| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust 大家好,我是Tony Bai。 近年来,Rust 语言无疑是技术圈最炙手可热的明星。它以“内存安全”的核心承诺,向统治了系统编程领| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python 大家好,我是Tony Bai。 最近,在国外的 Go 语言社区(Reddit r/golang)上,一个帖子引发了热烈的讨论。| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/14/writing-style-guide 大家好,我是Tony Bai。 作为一名开发者、架构师或运维专家,我们大部分时间都在与代码、系统和架构打交道。然而,我们同样在持续不断地进| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/12/insanely-productive-in-go 大家好,我是Tony Bai。 在软件开发的世界里,我们总被灌输一种观念:选项越多,工具越强,生产力就越高。于是,我们追求功能最全的| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/10/mcp-official-go-sdk 大家好,我是Tony Bai。 随着大型语言模型(LLM)的能力边界不断扩展,“function calling”或“tool use”已成为释放其潜力的关键。MCP(Model| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/09/gemini-cli-starting-guide 大家好,我是Tony Bai。 在软件开发的历史长河中,我们与机器的交互界面经历了一场有趣的轮回。 曾几何时,发光的绿色字符在黑色屏| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/05/go-is-8020-language 大家好,我是Tony Bai。 如果你写了一段时间的 Go,你可能会有一种独特的感觉。一方面,它简洁、高效、可靠;另一方面,你又会时常觉得它“| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang 大家好,我是Tony Bai。 你是否也有过这样的时刻? 你已经用 Go 写了不少代码,项目也能跑起来,但内心深处总| tonybai.com
本文永久链接 - https://tonybai.com/2025/05/15/go-json-v2 大家好,我是Tony Bai。 Go 语言标准库中的 encoding/json 包,无疑是我们日常开发中使用频率最高的包之一。它为 Go 社区服务了十多年,几乎无处不在| tonybai.com
本文永久链接 - 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 Lea| tonybai.com
本文永久链接 - https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal 0. 背景 Ian Taylor在关闭了旨在消除Go错误处理样板代码的issue之后,又| tonybai.com
本文永久链接 - https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine Go标准库中的encoding/json包,作为Go社区广泛使用的JSON处理工具,至今已走过十余年。凭借其将JSON数| tonybai.com
本文永久链接 - https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod Go语言自诞生以来,就一直将向后兼容性作为其核心理念之一。Go1兼容性承诺确保了为Go1.0编写的代码能够在后续的Go1.x| tonybai.com
本文永久链接 - https://tonybai.com/2024/01/06/the-2024-review-of-go-programming-language 2024年底,由于感染了甲流,我在家卧床休息了两天,原定于2024年进行的Go语言盘点写作因此被迫推迟。不过,我始终相| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中,我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文,重点介绍Go| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/16/go-1-24-foresight-part1 自2020年底撰写《Go 1.16版本新特性前瞻》以来,四年转瞬而逝。在这段时间里,每当Go的大版本开发进入新特性冻结(freeze)阶段,我都会为| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课:网络架构与NAT工作原理》中,我们介绍了WebRTC的网络架构和NAT的基本概念,学习了Web| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network 在《WebRTC第一课:网络架构与NAT工作原理》一文中,我们对WebRTC的网路架| tonybai.com
本文永久链接 - https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work 2023年下旬,OpenAI与Livekit的合作在科技圈引起了不小的轰动。这两家公司联手,通过WebRTC技术和大| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/19/some-changes-in-go-1-23 距离上一次Go 1.22版本发布又过去六个月了,我们如期迎来了Go 1.23版本的发布。 对于Go项目乃至整个Go社区而言,这个版本还有一点额外| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true 本文最初发表于我个人的微信公众号(iamtonybai),但鉴于图片消息的篇幅受限(<=1000字),一些内容没能如愿展| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/04/gopherdaily-add-feed-support 在《Russ Cox“退位”,Go语言将迎来新领袖,未来将如何发展》一文的评论区,有Gopher问及gopher-daily.com的HTTPS证书过期的问题,| tonybai.com
本文永久链接 - https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23 在《Go 1.23新特性前瞻》一文中,我们提到了Go 1.23中增加的一个主要的语法特性就是支持了用户自定义iterator,即r| tonybai.com
本文永久链接 - https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team 在Go 1.23版本即将发布(2024.8)之前,在GopherCon 2024开幕(2024.7)之前,Go团队成员Cameron Balahan(Go产品负责人)、 Samee| tonybai.com
本文永久链接 - https://tonybai.com/2023/08/20/some-changes-in-go-1-21 美国时间2023年8月8日,Go团队在Go官博上正式发布了1.21版本! 早在今年4月末,我就撰写了文章《Go 1.21新特性前瞻》,对Go 1.21可能引| tonybai.com