Go 服务自省指南:抛弃 ldflags,让你的二进制文件“开口说话”

本文永久链接 – https://tonybai.com/2025/12/31/go-introspection-using-debug-buildinfo 大家好,我是Tony Bai。 在微服务和云原生时代,当我们面对线上服务的报警时,第一个问题往往不是“哪里出错了?”,而是——“现在线上跑的到底是哪个版本?” ...

December 31, 2025 · 7 min · Tony Bai

小厂内部私有Go module拉取方案3

本文永久链接 – https://tonybai.com/2023/03/03/the-approach-to-go-get-private-go-module-in-house-part3 1. 缘起 我们的Go团队这两年完全是按照之前写的《小厂内部私有Go module拉取方案》和《小厂内部私有Go module拉取方案(续)》中的方案搭建的内部拉取私有仓库的基础设施,总体感觉不错,目前也没有什么大问题。 ...

March 3, 2023 · 11 min · Tony Bai

Go是如何缓解供应链攻击的[译]

本文永久链接 – https://tonybai.com/2022/04/02/how-go-mitigates-supply-chain-attacks 这些年来,关于软件供应链的安全问题频发,软件供应链已然成为IT安全领域的一个热点,在前不久的《聊聊Go语言的软件供应链安全》一文中我曾提到过Go在SBOM(软件物料清单)方面给开发人员带来的方便。这两天Go官博又发表了一篇由Go项目安全负责人Filippo Valsorda撰写的文章《How Go Mitigates Supply Chain Attacks》,系统总结了Go语言应对软件供应链方面攻击的“防护秘笈”。笔者觉得文章中提到的这些点是每个Gopher都应该知道的必备知识,于是这里将文章做简单翻译,供大家参考。 ...

April 2, 2022 · 9 min · Tony Bai

小厂内部私有Go module拉取方案

本文永久链接 – https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house 1. 问题来由 Go 1.11版本引入Go module后,Go命令拉取依赖的公共go module不再是“痛点”。如下图所示: 图:从公司内部经由公共GOPROXY服务拉取公共go module ...

September 3, 2021 · 13 min · Tony Bai

图解git原理的几个关键概念

git是那个“爱骂人”的Linux之父Linus Torvalds继Linux内核后奉献给全世界程序员的第二个礼物(不能确定已经逐渐老去的Torvalds能否迸发第三春,第三次给我们一个超大惊喜^_^)。这里再强调一下,git读作**/git/,而不是/dʒit/**。 ...

April 7, 2020 · 15 min · Tony Bai

Hello,Go module proxy

一. Go module引入的幸福与“无奈” 在《Go 1.11中值得关注的几个变化》一文中,我们知道了Go语言通过引入module的概念进而引入了Go tool的另外一种工作模式module-aware mode。在新的工作模式下,Go module支持了Versioned Go,并初步解决了包依赖管理的问题。 ...

November 26, 2018 · 11 min · Tony Bai

定制Go Package的Go Get导入路径

近期Go team的组员Jaana B. Dogan,网名:rakyll开源了一个小工具:Go Vanity URLs。这个小工具可以帮助你快速为你的Go package定制Go get的导入路径(同样也是package被使用时的import路径)。 ...

June 28, 2017 · 8 min · Tony Bai

初窥dep

Go语言程序组织和构建的基本单元是Package,但Go语言官方却没有提供一款“像样的”Package Management Tool(包管理工具)。随着Go语言在全球范围内应用的愈加广泛,缺少官方包管理工具这一问题变得日益突出。 2016年GopherCon大会后,在Go官方的组织下,一个旨在改善Go包管理的commitee成立了,共同应对Go在package management上遇到的各种问题。经过各种脑洞和讨论后,该commitee在若干月后发布了“Package Management Proposal”,并启动了最有可能被接纳为官方包管理工具的项目dep的设计和开发。2017年年初,dep项目正式对外开放。截至目前,dep发布了v0.1.0版本,并处于alpha测试阶段。 ...

June 8, 2017 · 16 min · Tony Bai

把所有东西都放入版本控制系统

本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的"Putting Absolutely Everything in Version Control“一文。 持续交付(Continuous Delivery)的一个关键原则就是将所有东西都放入版本控制系统中。这解决了一些重大问题,但也引入了一些其他问题。 ...

September 4, 2013 · 4 min · Tony Bai

给新手程序员的建议

本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的"Advice to a new programmer“一文**。** 总是有太多的建议摆在新手程序员面前,以致他们难于选择从何处开始。然而,所有这些建议都是建构在下面这五条实践的基础之上的。 ...

July 18, 2013 · 5 min · Tony Bai