Web Analytics

为什么 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

从“键盘牛仔”到“规范工程师”,AI 浪潮下的程序员身份危机

本文永久链接 – https://tonybai.com/2025/10/12/the-programmer-identity-crisis 大家好,我是Tony Bai。 “我是一个程序员。一个编码者。一个键盘牛仔……这是我的乐趣,也是我的身份认同。” 近日,一篇题为《程序员的身份危机》的博文在技术社区中引发了广泛的共鸣与讨论。作者Simon Højberg以一个“手艺人”的深情独白开篇,将我们带回了编程的黄金时代——那个在 MIT 26 号楼里,伴随着早期晶体管蜂鸣声,黑客们为了追求“The Right Thing”(那个完美的、简洁优雅的程序)而沉浸于机器语言的“黑暗艺术”的年代。 ...

October 12, 2025 · 6 min · Tony Bai

Go 作为第一门编程语言:天才之选还是糟糕开端?

Go 作为第一门编程语言:天才之选还是糟糕开端? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

October 11, 2025 · 6 min · Tony Bai

Go 零拷贝“最后一公里”:Peek API背后的设计哲学与权衡

本文永久链接 – https://tonybai.com/2025/10/10/proposal-add-buffer-peek 大家好,我是Tony Bai。 在 Go 的世界里,io.Reader 是一个神圣的接口。它如同一条设计精良、四通八达的高速公路,为数据流的传输提供了统一、优雅的抽象。然而,在这条高速公路的尽头,当数据流的目的地就在眼前——一块已然存在的内存([]byte)时,我们却常常被迫驶下一条颠簸、缓慢的“土路”,进行一次本可避免的内存拷贝。 ...

October 10, 2025 · 7 min · Tony Bai