Dave Cheney 复出首谈:那些我反复强调的Go编程模式

本文永久链接 – https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go 大家好,我是Tony Bai。 在阔别公众视野数年后,Go 社区的传奇人物 Dave Cheney 终于重返 GopherCon Europe 的舞台,发表了一场备受瞩目的复出首谈(注:我印象中的回归首谈^_^)。这场题为《那些我反复强调的 Go 编程之事》的演讲,没有追逐时髦的技术热点,而是选择回归编程的本源,分享了他十五年 Go 编程生涯中,那些被反复实践、验证并沉淀下来的核心理念。 ...

September 17, 2025 · 9 min · Tony Bai

泛型重塑 Go 错误检查:errors.As 的下一站 AsA?

本文永久链接 – https://tonybai.com/2025/08/23/proposal-errors-asa 大家好,我是Tony Bai。 自 Go 1.13 引入 errors.Is 和 errors.As 以来,Go 语言的错误处理进入了一个结构化、可追溯的新时代。然而,errors.As 的使用方式,对于追求代码简洁与优雅的 Gopher 而言,始终存在一丝“不和谐”:开发者必须预先声明一个目标错误类型的变量,然后将其指针传入函数。 ...

August 23, 2025 · 6 min · Tony Bai

聊聊Go语言的控制语句

本文永久链接 – https://tonybai.com/2023/05/27/control-flow-statement-in-go 在高级编程语言中,控制流语句(control-flow statement)是一类用于控制程序执行流程的语句,以下简称为控制语句。它们可以根据条件或循环执行相应的代码块,或者跳转到指定位置执行代码。 ...

May 27, 2023 · 12 min · Tony Bai

十分钟入门Go语言

本文永久链接 – https://tonybai.com/2023/02/23/learn-go-in-10-min 本文旨在带大家快速入门Go语言,期望小伙伴们在花费十分钟左右通读全文后能对Go语言有一个初步的认知,为后续进一步深入学习Go奠定基础。 ...

February 23, 2023 · 23 min · Tony Bai

Go语言中常见的几种反模式[译]

本文翻译自Saif Sadiq的文章《Common anti-patterns in Go》。 众所周知,编码是一门艺术,就像每个拥有精湛艺术并为之感到骄傲的工匠一样,我们作为开发人员也为我们编写的代码感到自豪。为了获得最佳效果,艺术家不断寻找可提高其手艺的方法和工具。同样,作为开发人员,我们也在不断提高自己的技能,并对”如何写出好的代码”这个最重要的问题的答案保持好奇。 ...

March 31, 2021 · 9 min · Tony Bai

理解Docker跨多主机容器网络

在Docker 1.9 出世前,跨多主机的容器通信方案大致有如下三种: 1、端口映射 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上,仅提供四层及以上应用和服务使用。这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信。显然这个方案的应用场景很有局限。 ...

February 15, 2016 · 12 min · Tony Bai

理解Docker容器端口映射

在”理解Docker单机容器网络“一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案,一种是1.7版本之前docker-proxy+iptables DNAT的方式;另一种则是1.7版本(及之后)提供的完全由iptables DNAT实现的端口映射。不过在目前docker 1.9.1中,前一种方式依旧是默认方式。但是从Docker 1.7版本起,Docker提供了一个配置项:–userland-proxy,以让Docker用户决定是否启用docker-proxy,默认为true,即启用docker-proxy。本文续前文,继续探讨使用端口映射时Docker容器网络的通信流程。 ...

January 18, 2016 · 16 min · Tony Bai

理解Docker单机容器网络

Docker容器是近两年最 火的IT技术之一,用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本质在于提升计算密度和提升部署效率,高屋 建瓴的讲,它的出现符合人类社会对绿色发展的追求,降低资源消耗,提升资源的单位利用率。不过经历了两年多的发展,Docker依旧年轻,尚未成 熟,在集群调度、存储、网络、安全等方面,Docker依旧有很长的路要走。 ...

January 15, 2016 · 26 min · Tony Bai