Go 的“浮点数陷阱”将被填平:浮点转整数即将在所有平台上行为一致
本文永久链接 – https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow 大家好,我是Tony Bai。 你是否知道,同一行简单的代码 int64(myFloat),在 Intel (amd64) 机器上可能返回一个巨大的负数,而在 ARM64 机器上却可能返回最大正整数? ...
本文永久链接 – https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow 大家好,我是Tony Bai。 你是否知道,同一行简单的代码 int64(myFloat),在 Intel (amd64) 机器上可能返回一个巨大的负数,而在 ARM64 机器上却可能返回最大正整数? ...
本文永久链接 – https://tonybai.com/2025/11/08/proposal-zstd 大家好,我是Tony Bai。 在 Go 的世界里,一项被社区翘首以盼的提案在沉寂一年后,终于迎来了决定性的进展。2024 年,将 Zstandard 压缩算法纳入标准库的提案(#62513)被正式 Accept,但在那之后便鲜有动静。直到最近的 Go 编译器与运行时会议纪要中透露,这项工作将由社区的明星开发者 Klaus Post 主导推进。 ...
本文永久链接 – https://tonybai.com/2025/11/04/microservice-disasters 大家好,我是Tony Bai。 2014 年,当 Martin Fowler 发表那篇定义性的文章后,“微服务”就从一个架构理念,迅速演变为席卷全球软件行业的技术浪潮。它承诺将庞大、笨重的单体应用,分解为小而美的、可独立开发和部署的服务,从而极大地提升团队的敏捷性和交付速度。 然而,在这份美好的承诺背后,隐藏着怎样的代价?资深工程师 João Alves 在他的系列文章中,以亲身经历为蓝本,为我们整理了一份包含 10 个灾难的“血泪清单”。这份清单,系统性地揭示了从技术深坑到组织泥潭的各种陷阱,对于任何一个身处微服务浪潮中的团队来说,都极具警示价值。 ...
本文永久链接 – https://tonybai.com/2025/10/20/k8s-1m-intro 大家好,我是Tony Bai。 在云原生的世界里,Kubernetes 集群的规模,如同一座待征服的高峰。业界巨头 AWS 已将旗帜插在了 10 万节点的高度,这曾被认为是云的“天际线”。然而,一位前OpenAI工程师(曾参与OpenAI 7.5k节点的Kubernetes集群的建设)发起了一个更雄心勃勃、甚至堪称“疯狂”的个人项目:k8s-1m。他的目标,是向着那座从未有人登顶的、充满未知险峻的**“百万节点”**之巅,发起一次单枪匹马的极限攀登。 ...
本文永久链接 – https://tonybai.com/2025/10/10/proposal-add-buffer-peek 大家好,我是Tony Bai。 在 Go 的世界里,io.Reader 是一个神圣的接口。它如同一条设计精良、四通八达的高速公路,为数据流的传输提供了统一、优雅的抽象。然而,在这条高速公路的尽头,当数据流的目的地就在眼前——一块已然存在的内存([]byte)时,我们却常常被迫驶下一条颠簸、缓慢的“土路”,进行一次本可避免的内存拷贝。 ...
本文永久链接 – https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals 大家好,我是Tony Bai。 在 Go 语言中,结构体嵌入 (Embedding) 是一个强大而独特的特性,它为我们提供了一种优雅的“垂直组合”方式。然而,多年来,它的使用体验中一直存在一个广为人知的“反直觉”之处,一个让无数开发者(包括 Go 核心团队成员自己)都曾踩过的坑。 近日,一个旨在解决此问题的、长达十年的“陈年”提案(#9859)被重新激活并进入了活跃评审阶段(active)。这预示着 Go 结构体字面值的使用方式,可能即将迎来一次意义深远的简化。在本文中,我就和大家一起对该提案做一下解读,看看新提案究竟解决了什么问题,一旦落地后,究竟会给Go开发者带来哪些好处。 ...
本文永久链接 – https://tonybai.com/2025/08/12/go-identity-crisis 大家好,我是Tony Bai。 最近,在国外的 Go 社区(Reddit r/golang)上,一个帖子引发了我的深思。发帖者是一位资深的 Gopher,他用一种略带困惑的语气写道: ...
本文永久链接 – https://tonybai.com/2025/07/31/periodic-table-of-system-design 大家好,我是Tony Bai。 近日,一篇名为《系统设计的元素》(Elements of System Design)的论文引发社区热议。它的目标宏大且吸睛:通过梳理上百篇横跨操作系统、数据库、分布式系统等领域的经典论文,提炼出一套通用的系统设计原则“元素周期表”。 ...
本文永久链接 – https://tonybai.com/2025/04/28/five-cache-strategies 大家好,我是Tony Bai。 在构建高性能、高可用的后端服务时,缓存几乎是绕不开的话题。无论是为了加速数据访问,还是为了减轻数据库等主数据源的压力,缓存都扮演着至关重要的角色。对于我们 Go 开发者来说,选择并正确地实施缓存策略,是提升应用性能的关键技能之一。 ...
本文永久链接 – https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment 美国计算机学会通讯(Communications of the ACM)期刊2022年5月第65卷第5期将发表一篇有关Go语言的综述类Paper:《Go编程语言与环境》,这类综述类文章只有资深的Go核心团队的人才“有资格”写,该文的作者列表印证了这一点,他们是Russ Cox,Robert Griesemer,Rob Pike,Ian Lance Taylor和Ken Thompson,都是Go语言核心团队耳闻能详的人物。 ...