Web Analytics

从 Go “叛逃”到 Java,再回归:一位开发者关于“魔法”与“显式”的深度反思

本文永久链接 – https://tonybai.com/2025/10/22/back-to-go-after-defection-to-java 大家好,我是Tony Bai。 “我离开了 Go,因为我觉得它啰嗦又笨重。我以为编程本该是简单轻松的……但事实证明,河对岸的草不见得更绿。” 近日,在 r/golang 社区,一篇标题为《一篇完全没有建设性但又无比真实的,关于 Go 和 Java 的咆哮》的帖子引发了热议。作者讲述了一个“Gopher 叛逆-回归”的经典故事:因不满 Go 社区对 ORM 和 DI 框架的“抵触”,以及 Go 语言本身的“繁琐”,他转投了企业级 Java 的怀抱。然而,在亲身体验了 Java 生态中无处不在的“魔法”之后,他如今“无比怀念 Golang”。 ...

October 22, 2025 · 7 min · Tony Bai

写出让同事赞不绝口的Go代码:Reddit工程师总结的10条地道Go编程法则

本文永久链接 – https://tonybai.com/2025/10/21/10-go-programming-rules-from-reddit 大家好,我是Tony Bai。 在团队协作中,Code Review是我们与同事交流最频繁的阵地。我们都渴望自己提交的代码能够清晰、健壮,赢得同事的“LGTM”(Looks Good To Me)。但有时,一些看似“吹毛求疵”的风格评论,如“改下变量名”或“这里缩进不对”,会让我们感到困惑。 ...

October 21, 2025 · 19 min · Tony Bai

一个 Kubernetes 集群的“珠峰攀登”:从 10 万到 100 万节点的极限探索

本文永久链接 – https://tonybai.com/2025/10/20/k8s-1m-intro 大家好,我是Tony Bai。 在云原生的世界里,Kubernetes 集群的规模,如同一座待征服的高峰。业界巨头 AWS 已将旗帜插在了 10 万节点的高度,这曾被认为是云的“天际线”。然而,一位前OpenAI工程师(曾参与OpenAI 7.5k节点的Kubernetes集群的建设)发起了一个更雄心勃勃、甚至堪称“疯狂”的个人项目:k8s-1m。他的目标,是向着那座从未有人登顶的、充满未知险峻的**“百万节点”**之巅,发起一次单枪匹马的极限攀登。 ...

October 20, 2025 · 7 min · Tony Bai

为什么 Flask 的创造者选择 Go 作为他 AI 创业公司的核心语言?

为什么 Flask 的创造者选择 Go 作为他 AI 创业公司的核心语言? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

October 19, 2025 · 5 min · Tony Bai

AI 让代码产出速度提升 10 倍,为什么我们的软件交付成功率却停滞不前?

AI 让代码产出速度提升 10 倍,为什么我们的软件交付成功率却停滞不前? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

October 18, 2025 · 6 min · Tony Bai

Go 技术沉思录:Java 26 年演进史给我们带来的启示

本文永久链接 – https://tonybai.com/2025/10/18/lessons-from-java-26-years-evolution 大家好,我是Tony Bai。 历史不会简单重复,但总是惊人地相似。编程语言的演化,如同一部波澜壮阔的史诗,充满了智慧的闪光、艰难的抉择与深刻的教训。 ...

October 18, 2025 · 7 min · Tony Bai

收到非 UTF-8 文本怎么办?Go 字符集检测的探索与实践

本文永久链接 – https://tonybai.com/2025/10/17/detect-charset-in-go 大家好,我是Tony Bai。 在上一篇关于 Go 语言 string 与 rune 设计哲学的文章发布后,我收到了许多精彩的反馈。其中,一位读者提出了一个极具现实意义的后续问题:“既然 Go 的世界以 UTF-8 为中心,那么当我们从外部系统(如老旧的文件、非标准的 API)接收到一段未知编码的字节流时,我们该如何是好?Go 生态是否有成熟的字符集检测工具/库?” ...

October 17, 2025 · 13 min · Tony Bai

释放 Go 的极限潜能:CPU 缓存友好的数据结构设计指南

本文永久链接 – https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go 大家好,我是Tony Bai。 “现代 CPU 很快,而内存很慢。” 这句看似简单的陈词滥调,是理解现代高性能编程的唯一“真理”。我们常常致力于优化算法的时间复杂度,却忽略了一个更为根本的性能瓶颈:数据在内存和 CPU 缓存之间的移动。一次 L1 缓存的命中可能仅需数个时钟周期(~1ns),而一次主内存的访问则需要超过上百个周期(~100ns),这之间存在着超过 100 倍的惊人差距(2020年数据,如下图,近些年内存速度提升,但与L1缓存相比依旧有几十倍的差距)。 ...

October 16, 2025 · 23 min · Tony Bai

Go 考古:defer 的“救赎”——从性能“原罪”到零成本的“开放编码”

本文永久链接 – https://tonybai.com/2025/10/15/go-archaeology-defer 大家好,我是Tony Bai。 在 Go 语言的所有关键字中,defer 无疑是最具特色和争议的之一。它以一种近乎“魔法”的方式,保证了资源清理逻辑的执行,极大地提升了代码的可读性和健壮性。f, _ := os.Open(“…”); defer f.Close() 这一行代码,几乎是所有 Gopher 的肌肉记忆。 ...

October 15, 2025 · 9 min · Tony Bai

string 与 rune 的设计哲学:为什么Go 程序员很少为“乱码”烦恼?

本文永久链接 – https://tonybai.com/2025/10/13/string-and-rune-in-go 大家好,我是Tony Bai。 “为什么我的字符又乱码了?!” 这是一个在软件开发历史上,曾让无数程序员彻夜难眠的哀嚎。处理文本,是编程中最基础的任务之一,但其背后关于编码 (Encoding) 和字符集 (Character Set) 的水,远比看起来要深。正如 Joel Spolsky 在其经典文章中疾呼的那样,这是每位软件开发者都必须了解的“绝对最低限度”的知识。 ...

October 13, 2025 · 8 min · Tony Bai