Web Analytics

跨越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 测试,还停留在“演员对台词”吗?

本文永久链接 – https://tonybai.com/2025/11/17/go-testing-journey 大家好,我是Tony Bai。 我想请大家想象一个场景: 周五下午五点,你刚刚修复了一个看似无关紧要的 bug,怀着对周末的憧憬,合并了你的代码。CI/CD 流水线一片绿灯,部署顺利完成。 ...

November 17, 2025 · 5 min · Tony Bai

GCP大面积故障,Go语言是“元凶”还是“背锅侠”?

GCP大面积故障,Go语言是“元凶”还是“背锅侠”? - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

June 16, 2025 · 9 min · Tony Bai

Go团队:Go是什么

本文永久链接 – https://tonybai.com/2024/05/19/what-the-go-team-think-go-is 2024年的Google I/O大会如期而至。 这届大会的核心主旨毫无疑问是坚定不移的以AI为中心:Google先是发布了上下文长度将达到惊人的200万token的Gemini 1.5 Pro,然后面对OpenAI GPT-4o的挑衅,谷歌在大会上直接甩出大杀器Project Astra,视觉识别和语音交互效果,跟OpenAI的GPT-4o不相上下;接着,谷歌又祭出文生视频模型Veo硬刚Sora,效果酷炫,时长超过1分钟,打破Sora纪录。最后Google CEO劈柴宣布:谷歌搜索将被Gemini重塑,形态从此彻底改变!用户不再需要自己点进搜索结果,而是由多步骤推理的AI Overview来代办一切。 ...

May 19, 2024 · 9 min · Tony Bai

一文搞懂Go subtest

注:本篇首图片基于lexica AI生成的图片二次加工而成。 本文永久链接 – https://tonybai.com/2023/03/15/an-intro-of-go-subtest 单元测试(unit testing)是软件开发中至关重要的一环,它存在的意义包括但不限于如下几个方面: 提高代码质量:单元测试可以确保代码的正确性、可靠性和稳定性,从而减少代码缺陷和bug。 减少回归测试成本:在修改代码时,单元测试可以快速检查是否影响了其他模块的功能,避免了整个系统的回归测试成本。 促进团队合作:单元测试可以帮助团队成员更好地理解和使用彼此编写的代码,提高代码的可读性和可维护性。 提高开发效率:单元测试可以自动化执行测试,减少手动测试的时间和工作量,从而提高开发效率。 Go语言设计者在Go设计伊始就决定语言特性与环境特性“两手都要抓,两手都要硬”,事实证明:Go的成功正是因为其对工程软件项目整体环境的专注。而Go内置轻量级测试框架这一点也正是Go重视环境特性的体现。并且,Go团队对这一内置测试框架的投入是持续的,不断有更便捷的、更灵活的新特性加入Go测试框架中,可以帮助Gopher更好地组织测试代码,更高效地执行测试等。 ...

March 15, 2023 · 9 min · Tony Bai

Go 1.18版本正式发布了

本文永久链接 – https://tonybai.com/2022/03/16/go-1-18-released 美国时间2022年3月15日,Go核心团队官宣了Go 1.18版本正式版的发布!这是一个万众期待的版本,因为在这个版本中,Go核心团队做了Go语言开源以来的最大一次语法特性变更 – 增加了对泛型(generics)的支持!下面是对Go官博文章的全文翻译,供大家参考! ...

March 16, 2022 · 3 min · Tony Bai

Go语言项目的安全评估技术

在今年夏天我们对Kubernetes的评估成功之后,我们收到了大量Go项目的安全评估需求。为此,我们将在其他编译语言中使用过的安全评估技术和策略调整适配到多个Go项目中。 我们从了解语言的设计开始,识别出开发人员可能无法完全理解语言语义特性的地方。多数这些被误解的语义来自我们向客户报告的调查结果以及对语言本身的独立研究。尽管不是详尽无遗,但其中一些问题领域包括作用域、协程、错误处理和依赖管理。值得注意的是,其中许多与运行时没有直接关系。默认情况下,Go运行时本身的设计是安全的,避免了很多类似C语言的漏洞。 ...

November 8, 2019 · 14 min · Tony Bai