为什么说“编译通过,就能运行”?Google 专家 Alice 揭秘 Rust 的工程美学与底层逻辑

本文永久链接 – https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic 大家好,我是Tony Bai。 在软件工程界,有一句流传甚广、近乎玄学的名言:“如果你的 Rust 代码通过了编译,那么它就已经可以正确运行了。” 对于被 Java 的空指针异常(NullPointerException)折磨得彻夜难眠、被 C++ 的段错误(Segfault)逼到崩溃、或者在 TypeScript 里为处理各种隐式错误而心力交瘁的开发者来说,这句话听起来像是一个过于美好的谎言。 ...

June 16, 2026 · 9 min · Tony Bai

跨越20年的对话:从 Eiffel 的“契约”到 Go 的“接口”

本文永久链接 – https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface 大家好,我是Tony Bai。 20年前,当我第一次翻开 Bertrand Meyer 的那本巨著**《面向对象软件构造》(Object-Oriented Software Construction)** 时,一种醍醐灌顶的感觉油然而生。书中那个名为 Eiffel 的语言,以及它所倡导的 “契约式设计” (Design by Contract, DbC),仿佛为当时混乱的软件开发世界点亮了一盏明灯。 ...

December 13, 2025 · 10 min · Tony Bai

Go 的“身份危机”:当新 Gopher 试图将它变成他们最爱的语言

本文永久链接 – https://tonybai.com/2025/08/12/go-identity-crisis 大家好,我是Tony Bai。 最近,在国外的 Go 社区(Reddit r/golang)上,一个帖子引发了我的深思。发帖者是一位资深的 Gopher,他用一种略带困惑的语气写道: ...

August 12, 2025 · 7 min · Tony Bai

聊聊Go语言的全局变量

本文永久链接 – https://tonybai.com/2023/03/22/global-variable-in-go 注:上面篇首配图的底图由百度文心一格生成。 C语言是Go语言的先祖之一,Go继承了很多C语言的语法与表达方式,这其中就包含了全局变量,虽然Go在其语法规范中并没有直接给出全局变量的定义。但是已经入门Go的童鞋都知道,在Go中包的导出变量(exported variable)起到的就是全局变量的作用。Go包导出变量与C的全局变量在优缺点与使用方式也有相似之处。 ...

March 22, 2023 · 10 min · Tony Bai

Go是一门面向对象编程语言吗

本文永久链接 – https://tonybai.com/2023/03/12/is-go-object-oriented Go语言已经开源13年了,在近期TIOBE发布的2023年3月份的编程语言排行榜中,Go再次冲入前十,相较于Go在2022年底的排名提升了2个位次: 《Go语言第一课》专栏中关于Go在这两年开始飞起的“预言”也正在逐步成为现实^_^,大家学习Go的热情也在快速提升, 《Go语言第一课》专栏的学习的人数年后也快速增加,快突破2w了。 很多专栏的订阅者都是第一次接触Go,他们中的很多是来自像Java, Ruby这样的OO(面向对象)语言阵营的,他们学习Go之后的第一个问题便是:Go是一门OO语言吗?在这篇博文中,我们就来探讨一下。 ...

March 12, 2023 · 10 min · Tony Bai