Go 语言的“反模式”清单:来自资深 Gopher 血泪教训的 10 条“不要做”

本文永久链接 – https://tonybai.com/2025/12/15/go-language-anti-patterns-10-donts 大家好,我是Tony Bai。 “有哪些‘不要做’的教训,是你花了好几年才学会的?” 近日,在 r/golang 社区,这个简单的问题,引爆了一场关于 Go 语言“反模式”与“最佳实践”的集体反思。帖子下数百条评论,汇集了无数 Gopher 在真实项目中用“血与泪”换来的宝贵经验。这些教训,往往不是关于某个高深的算法,而是关于那些看似“理所当然”,却在不经意间为代码埋下地雷的日常习惯。 ...

December 15, 2025 · 7 min · Tony Bai

除了技术能力,什么决定了软件工程师的上限?答案是“品味”

本文永久链接 – https://tonybai.com/2025/09/30/good-taste-in-software-engineering 大家好,我是Tony Bai。 在软件工程领域,我们习惯于用“技术能力”(Technical Skill)来衡量一位工程师的优劣。他是否精通并发模型?能否写出高性能的代码?对底层原理的理解有多深?这些能力可以通过学习和重复练习来获得,是我们评价体系中的“硬通货”。 ...

September 30, 2025 · 7 min · Tony Bai

官宣:Go专栏“改善Go语言编程质量的50个有效实践”上线了

断断续续写了一年多的Go专栏:《改善Go语言编程质量的50个有效实践》今天终于正式上线了!- https://www.imooc.com/read/87 慕课专栏:《改善Go语言编程质量的50个有效实践》 Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言,支持垃圾回收和轻量级并发,它于2009年11月诞生,一面世就以语法简单、原生支持并发、标准库强大、工具链丰富等优点吸引了大量开发者。经过10余年演化和发展,Go如今已成为云基础架构的标准编程语言,很多云原生时代的杀手级平台、中间件、协议和应用都是采用Go语言开发的,比如:Docker、Kubernetes、以太坊、Hyperledger Fabric超级账本、新一代互联网基础设施协议ipfs等。 ...

September 8, 2020 · 8 min · Tony Bai

docker容器内服务程序的优雅退出

近期在试验如何将我们的产品部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器退出时其内部运行的服务程序也 可以优雅的退出。所谓优雅退出,指的就是程序在退出前有清理资源(比如关闭文件描述符、关闭socket),保存必要中间状态,持久化内存数据 (比如将内存中的数据flush到文件中)的机会。docker作为目前最火的轻量级虚拟化技术,其在后台服务领域的应用是极其广泛的,其设计者 在程序优雅退出方面是有考虑的。下面我们由简单到复杂逐一考量一下。 ...

October 9, 2014 · 15 min · Tony Bai

Golang Channel用法简编

在进入正式内容前,我这里先顺便转发一则消息,那就是Golang 1.3.2已经正式发布了。国内的golangtc已经镜像了golang.org的安装包下载页面,国内go程序员与爱好者们可以到"Golang中 国",即golangtc.com去下载go 1.3.2版本。 ...

September 29, 2014 · 11 min · Tony Bai