本文永久链接 – https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work 大家好,我是Tony Bai。 在我们解读了Github工程师Sean Goedecke关于“无聊即可靠”的系统设计和API设计理念之后,他再次带来了一篇精彩的的文章——《Do the simplest thing that could possibly work》。这既是对前两篇文章思想的延续,更是将其核心哲学提炼为一条终极黄金法则:在软件设计的每一个环节,都应“...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/30/python-an-origin-story 大家好,我是Tony Bai。 在编程语言的星空中,很少有哪颗星像Python一样,以如此温和而坚定的姿态,从一个不起眼的个人项目,成长为照亮地球未来的科技灯塔。如今,当我们谈论数据科学、人工智能时,Python几乎是绕不开的默认选项。但这一切的起点,竟源于一位程序员在阿姆斯特丹的圣诞假期里,为了“打发时间...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/29/good-api-design 大家好,我是Tony Bai。 在解读《Everything I know about good system design》一文时,我们曾提炼出一个核心观点:“无聊即可靠”。这个看似反直觉的法则,在追求创新与复杂的软件工程世界里,如同一股清流。现在,这个“无聊”哲学将从宏观的系统设计,延伸至微观但至关重要的领域——API设计。 Sean Goedecke在其后续力作《Every...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/28/go-primer-published 大家好,我是Tony Bai。 前不久,在知乎上看到一个关于 Go 社区的帖子,其中一条评论让我感慨良多: “GopherChina 都没了,国内还有几人坚持?Tony Bai好像还在更新” 短短一句话,道尽了社区的变迁与坚持的不易。这句来自读者的回答,让我内心欣慰,也让我有机会停下来,审视自己在这条路上走了多远,以及为什么还...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/27/go-interface-embrace-data 大家好,我是Tony Bai。 在 Go 语言的世界里,接口(interface)一直被视为其设计哲学的基石之一——它只关心一个类型能做什么(行为),而不关心它是什么(结构)。这种基于方法集的鸭子类型,赋予了 Go 独一无二的灵活性和解耦能力。然而,随着 Go 1.18 泛型的到来,一个深刻的问题被摆上了台面:当我们需要编...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/26/good-system-design 大家好,我是Tony Bai。 在技术圈,我们常常被各种“炫技式”的系统设计建议所包围。从入门级的“你一定没听说过队列吧?”到专家级的“在数据库里存布尔值简直是灾难”,这些建议要么过于肤浅,要么过于精巧,往往脱离了大多数工程实践的真实上下文。就连《设计数据密集型应用》这样的经典之作,虽然深刻,...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy 大家好,我是Tony Bai。 Go语言的并发模型以其简洁直观著称,但这种简单性背后,隐藏着一个跨越五个数量级的巨大性能鸿沟。当你的高并发服务遭遇性能瓶颈时,你是否也曾陷入“性能猜谜”的困境:是sync.Mutex太慢?是atomic操作不够快?还是某个channel的阻塞超出了预期?我们往往依赖直觉和pprof的零散线索,...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/25/documents-the-architects-programming-language 大家好,我是Tony Bai。 从初级到高级,开发者的职业路径通常是清晰的:写出更好的代码。但当站在高级工程师的十字路口,是转向管理还是深入技术成为架构师?许多人选择了后者,却发现这个角色的定义模糊不清。最近,stackoverflow的一篇精彩的博客文章《文档:架构师的编程语言》提出了一个深...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/25/go-is-still-not-good 大家好,我是Tony Bai。 在技术圈,平静的湖面下往往暗流涌动。对于Go语言社区而言,这股潜藏已久的暗流,被近期的一篇名为《Go is still not good》的博文彻底引爆。作者Thomas Habets,一位自称拥有超过十年Go使用经验的资深开发者,在他的这篇文章中系统性地列举了他眼中Go语言的“七宗罪”。这篇文章迅速登上Hacker News...| Tony Bai
本文永久链接 - https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age 大家好,我是Tony Bai。 这是一个对初级工程师而言,最好也最坏的时代。 说它“最好”,是因为我们从未拥有过如此强大| tonybai.com
本文永久链接 - https://tonybai.com/2024/09/12/solve-the-empty-value-dilemma-in-json-encoding-with-omitzero Go标准库是Go号称“开箱即用”的重要因素,而标准库中的encoding/json包又是标准库最常用的Go包。| tonybai.com
本文永久链接 - https://tonybai.com/2023/02/01/serialize-roaring-bitmap-to-json 近期在实现一个数据结构时使用到了位图索引(bitmap index),本文就来粗浅聊聊位图(bitmap)。 一. 什么是bitmap 位图索引使用| tonybai.com
关注并使用过微信“飞常准”公众号的朋友们都有过如下体验:查询一个航班情况后,这个航班的checkin、登机、起降等信息都会在后续陆续异步发给你,这个服务就是通过微信公众平台的客服消息实现的。 微| tonybai.com
本文永久链接 – https://tonybai.com/2025/05/31/six-smells-in-go| tonybai.com
本文永久链接 – https://tonybai.com/2025/08/14/rs-py-ts-trifecta| tonybai.com
本文永久链接 - https://tonybai.com/2025/08/06/go-new-engine-of-old-languages 大家好,我是Tony Bai。 我先来描述一种编程语言生态,请你猜猜它是谁: 它诞生于 1995 年,旨在为当时一个叫“万维网”的新| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity) 大家好,我是Tony Bai。 最近,一张关于编程语言规范词数统计的图表,在技术圈广为流传。它以一种极其直观、甚至有些残酷的方| tonybai.com
在”理解Docker单机容器网络“一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样。| tonybai.com
本文永久链接 – https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go| tonybai.com
本文永久链接 – https://tonybai.com/2023/09/28/dependency-injection-with-go| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust 大家好,我是Tony Bai。 近年来,Rust 语言无疑是技术圈最炙手可热的明星。它以“内存安全”的核心承诺,向统治了系统编程领| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python 大家好,我是Tony Bai。 最近,在国外的 Go 语言社区(Reddit r/golang)上,一个帖子引发了热烈的讨论。| tonybai.com
本文永久链接 - https://tonybai.com/2024/01/07/what-we-got-right-what-we-got-wrong 在《2023年Go语言盘点:稳中求新,稳中求变》和《Go测试的20个实用建议》两篇文章中,我都提到过已经退居二线的Go语言之父R| tonybai.com
发展演化了十年的Go语言已经被证明了是云计算时代的首选编程语言,但Go的用武之地显然不局限于此。Kevin Goslar近期在Hacker Noon发表了一篇名为:《Go is on a Trajectory to Become the Next Enterprise Programmi| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/14/writing-style-guide 大家好,我是Tony Bai。 作为一名开发者、架构师或运维专家,我们大部分时间都在与代码、系统和架构打交道。然而,我们同样在持续不断地进| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/12/insanely-productive-in-go 大家好,我是Tony Bai。 在软件开发的世界里,我们总被灌输一种观念:选项越多,工具越强,生产力就越高。于是,我们追求功能最全的| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/10/mcp-official-go-sdk 大家好,我是Tony Bai。 随着大型语言模型(LLM)的能力边界不断扩展,“function calling”或“tool use”已成为释放其潜力的关键。MCP(Model| tonybai.com
本文永久链接 - https://tonybai.com/2025/06/07/nucleus-embryo 大家好,我是Tony Bai。 最近,一张名为| tonybai.com
本文永久链接 - https://tonybai.com/2025/06/03/provocation-about-ai-assisted-programming 大家好,我是Tony Bai。 最近,fly.io 博客上该公司开发者 Thomas Ptacek 的一篇题为《My AI Skeptic Friends Are A| tonybai.com
本文永久链接 - https://tonybai.com/2025/04/18/reproduce-thorsten-balls-code-agent 大家好,我是Tony Bai。 人工智能Agent风头正劲,但构建它们真的那么难吗?本文深入解读Thorsten Ball 的“皇帝新衣”论,并| tonybai.com
本文永久链接 - https://tonybai.com/2025/03/11/building-effective-agents 近来,人工智能领域再次风起云涌,各种能力超强的大模型、创新概念和工具层出不穷,让人目不暇接。从DeepSeek发布的开源MoE 模型DeepS| tonybai.com
本文永久链接 - https://tonybai.com/2024/05/19/what-the-go-team-think-go-is 2024年的Google I/O大会如期而至。 这届大会的核心主旨毫无疑问是坚定不移的以AI为中心:Google先是发布了上下文长度将达到惊人的| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/09/gemini-cli-starting-guide 大家好,我是Tony Bai。 在软件开发的历史长河中,我们与机器的交互界面经历了一场有趣的轮回。 曾几何时,发光的绿色字符在黑色屏| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/08/typed-struct-tags 大家好,我是Tony Bai。 Go 语言的结构体标签(Struct Tag)自诞生以来,一直是其强大反射能力的重要组成部分,广泛应用于 encoding/json、OR| tonybai.com
本文永久链接 – https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case 大家好,我是Tony Bai。 最近,GitLab的安全研究团队披露了一起极其巧妙的供应链攻击,目标直指 Go 社区中一个流行的 Mongo| tonybai.com
本文永久链接 – https://tonybai.com/2025/06/29/thinking-parallel-programming| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/05/go-is-8020-language 大家好,我是Tony Bai。 如果你写了一段时间的 Go,你可能会有一种独特的感觉。一方面,它简洁、高效、可靠;另一方面,你又会时常觉得它“| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang 大家好,我是Tony Bai。 你是否也有过这样的时刻? 你已经用 Go 写了不少代码,项目也能跑起来,但内心深处总| tonybai.com
本文永久链接 - https://tonybai.com/2025/06/26/non-deterministic-abstraction 大家好,我是Tony Bai。 在软件开发领域,Martin Fowler 的名字几乎等同于思想的灯塔。他的每一篇文章、每一次演讲,都能为我们| tonybai.com
本文永久链接 – https://tonybai.com/2025/07/05/agentic-coding-is-the-future| tonybai.com
本文永久链接 - https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain 0. Go错误处理简要回顾 Go是一种非常强调错误处理的编程语言。在Go中,错误被表示为实现了error接口的类型的值,error接口只有| tonybai.com
本文永久链接 - https://tonybai.com/2023/02/19/how-to-determine-if-two-interface-vars-are-equal 近日一位《Go语言第一课》专栏的读者向我提出一个问题,代码如下: func main() { printNonEmptyInterfa| tonybai.com
介绍 在过去的十年中, Go的errors are values的理念在编码实践中运行得也很良好。尽管标准库对错误处理的的支持很少(只有errors.New和fmt.Errorf函数可以用来构造仅包含字符串消息的错误),但是内置的error接口| tonybai.com
这几年关于Go语言未来演化的讨论成为了Gopher世界的热点,Go team官方对于Go语言的演化(以Go2为标签)也是十分上心,但吸取了其他语言,比如:Python3割裂社区的、不兼容演化的教训,Go team最终选择了一条尽可能地兼| tonybai.com
本文永久链接 - https://tonybai.com/2025/05/15/go-json-v2 大家好,我是Tony Bai。 Go 语言标准库中的 encoding/json 包,无疑是我们日常开发中使用频率最高的包之一。它为 Go 社区服务了十多年,几乎无处不在| tonybai.com
Docker容器是近两年最 火的IT技术之一,用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本| tonybai.com
本文永久链接 - https://tonybai.com/2024/11/12/go-turns-15 虽然迟到了,但绝不缺席!新任Go技术负责人Austin Clements在Go语言15岁生日后的第二天,在Go官方博客上发表了庆祝文章“Go Turns 15”。在这篇文章中| tonybai.com
本文永久链接 - https://tonybai.com/2023/11/11/go-opensource-14-years 国内的双十一购物狂欢已没有了当年的那种热闹与喧嚣,但大洋彼岸的Go团队却始终保持稳中有增的开发和语言演进节奏。今晨Go核心团队的Russ| tonybai.com
本文永久链接 - https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule Go语言在发展演进过程中一直十分注重向后兼容性(backward compatibility),在Go 1.0版本发布之初就发布| tonybai.com
本文永久链接 - https://tonybai.com/2025/02/16/some-changes-in-go-1-24 北京时间2025年2月12日,恰逢中国传统元宵佳节,远在美国的Go团队正式发布了Go 1.24的第一个版本Go 1.24.0。这也是Go团队在更换Tech Lea| tonybai.com
本文永久链接 - https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal 0. 背景 Ian Taylor在关闭了旨在消除Go错误处理样板代码的issue之后,又| tonybai.com
本文永久链接 - https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine Go标准库中的encoding/json包,作为Go社区广泛使用的JSON处理工具,至今已走过十余年。凭借其将JSON数| tonybai.com
本文永久链接 - https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod Go语言自诞生以来,就一直将向后兼容性作为其核心理念之一。Go1兼容性承诺确保了为Go1.0编写的代码能够在后续的Go1.x| tonybai.com
本文永久链接 - https://tonybai.com/2024/01/06/the-2024-review-of-go-programming-language 2024年底,由于感染了甲流,我在家卧床休息了两天,原定于2024年进行的Go语言盘点写作因此被迫推迟。不过,我始终相| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中,我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文,重点介绍Go| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/16/go-1-24-foresight-part1 自2020年底撰写《Go 1.16版本新特性前瞻》以来,四年转瞬而逝。在这段时间里,每当Go的大版本开发进入新特性冻结(freeze)阶段,我都会为| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课:网络架构与NAT工作原理》中,我们介绍了WebRTC的网络架构和NAT的基本概念,学习了Web| tonybai.com
本文永久链接 - https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network 在《WebRTC第一课:网络架构与NAT工作原理》一文中,我们对WebRTC的网路架| tonybai.com
本文永久链接 - https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work 2023年下旬,OpenAI与Livekit的合作在科技圈引起了不小的轰动。这两家公司联手,通过WebRTC技术和大| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/19/some-changes-in-go-1-23 距离上一次Go 1.22版本发布又过去六个月了,我们如期迎来了Go 1.23版本的发布。 对于Go项目乃至整个Go社区而言,这个版本还有一点额外| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true 本文最初发表于我个人的微信公众号(iamtonybai),但鉴于图片消息的篇幅受限(<=1000字),一些内容没能如愿展| tonybai.com
本文永久链接 – https://tonybai.com/2024/02/18/some-changes-in-go-1-22| tonybai.com
本文永久链接 - https://tonybai.com/2021/12/31/2021-blog-summary 2021年对我来说是极其充实的一年。 在这一年里,生活上的充实体现在带娃上。除了要带不到一岁的二宝,还要辅导大宝学习,陪大宝上补习班。| tonybai.com
今年4月份,中国移动、中国电信、中国联通三大运营商联合举行线上发布会,发布了《5G消息白皮书》。所谓5G消息,即传统短信消息(仅能进行文本展示)的升级版,是由GSMA组织制定的RCS(Rich Communication Suite)消息| tonybai.com
自从上一次配置好Mac上的Golang Vim开发环境,基本上就没怎么动过。近两年过去了,Go已经升级到了1.7版本,Vim-go截至目前也已经演化到了1.8版本了。社区的积极关注和使用,让Vim-go的作者Fatih Arslan备受鼓舞,于| tonybai.com
本文永久链接 – https://tonybai.com/2024/08/27/a-new-syntax-quiz-after-go-1-18| tonybai.com
本文永久链接 - https://tonybai.com/2024/08/04/gopherdaily-add-feed-support 在《Russ Cox“退位”,Go语言将迎来新领袖,未来将如何发展》一文的评论区,有Gopher问及gopher-daily.com的HTTPS证书过期的问题,| tonybai.com
本文永久链接 – https://tonybai.com/2024/07/21/simd-in-go| tonybai.com
本文永久链接 - https://tonybai.com/2024/07/21/simd-in-go 前些日子,一些资深Gopher,比如fasthttp的作者Aliaksandr Valialkin因函数迭代器加入Go 1.23版本而抱怨Go的演进走错了方向:朝着增加复杂性和隐式代| tonybai.com
本文永久链接 - https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23 在《Go 1.23新特性前瞻》一文中,我们提到了Go 1.23中增加的一个主要的语法特性就是支持了用户自定义iterator,即r| tonybai.com
本文永久链接 - https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team 在Go 1.23版本即将发布(2024.8)之前,在GopherCon 2024开幕(2024.7)之前,Go团队成员Cameron Balahan(Go产品负责人)、 Samee| tonybai.com
本文永久链接 – https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition| tonybai.com
本文永久链接 - https://tonybai.com/2024/06/06/gopher-rust-first-lesson-organizing-rust-code 在上一章的讲解中,我们编写了第一个Rust示例程序| tonybai.com
本文永久链接 - https://tonybai.com/2024/05/30/go-1-23-foresight 2024年5月22日,Go 1.23版本功能特性正式冻结,后续将只改bug,不增加新feature。 对Go团队来说,这意味着开始了Go 1.23rc1的冲刺,对我们| tonybai.com
本文永久链接 - https://tonybai.com/2024/02/18/some-changes-in-go-1-22 美国时间2024年2月6日,正当中国人民洋溢在即将迎来龙年春节的喜庆祥和的气氛中时,Eli Bendersky代表Go团队在Go官博发文“Go 1.22 is re| tonybai.com
本文永久链接 - https://tonybai.com/2023/08/20/some-changes-in-go-1-21 美国时间2023年8月8日,Go团队在Go官博上正式发布了1.21版本! 早在今年4月末,我就撰写了文章《Go 1.21新特性前瞻》,对Go 1.21可能引| tonybai.com