Go 模块构建与依赖管理:我们到底在“折腾”什么?

Go 模块构建与依赖管理:我们到底在“折腾”什么? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

October 27, 2025 · 5 min · Tony Bai

Go 模块的“分叉之痛”:一个提案能否终结“全局替换”的噩梦?

本文永久链接 – https://tonybai.com/2025/08/07/fork-go-module 大家好,我是Tony Bai。 今天,我想和你聊一个几乎每个 Go 开发者都经历过的场景,一种我们圈内人“只可意会,不可言传”的痛苦。我称之为 Go 模块的**“分叉之痛” (The Forking Pain)**。 ...

August 7, 2025 · 8 min · Tony Bai

千呼万唤始出来?Go 1.25解决Git仓库子目录作为模块根路径难题

千呼万唤始出来?Go 1.25解决Git仓库子目录作为模块根路径难题 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

June 7, 2025 · 8 min · Tony Bai

Go项目该拥抱Monorepo吗?Google经验、etcd模式及白盒交付场景下的深度剖析

Go项目该拥抱Monorepo吗?Google经验、etcd模式及白盒交付场景下的深度剖析 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

June 6, 2025 · 14 min · Tony Bai

Go项目中使用Git Submodule,还有这个必要吗?

Go项目中使用Git Submodule,还有这个必要吗? | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 Go项目中使用Git Submodule,还有这个必要吗? 十月 5, 2024 0 条评论 ...

October 5, 2024 · 9 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

Prometheus采不到数据了!居然是Prometheus client包的锅

本文永久链接 – https://tonybai.com/2022/06/15/prometheus-can-not-pick-up-data-because-of-the-prometheus-client-package 在基于eBPF的新一代观测设施尚未成熟之前,我们采用了业界成熟的Prometheus+Grafana方案采集节点与应用度量指标(metrics)信息。众所周知,这样的方案是一种对应用有侵入的方案,即需要在应用内部嵌入采集度量信息及与Prometheus通信的client包。 Prometheus官方提供并维护了主流语言的client包,包括Go、Java、Python、Ruby、Rust等,如下图: ...

June 15, 2022 · 6 min · Tony Bai

gRPC客户端的那些事儿

本文永久链接 – https://tonybai.com/2021/09/17/those-things-about-grpc-client 在云原生与微服务主导架构模式的时代,内部服务间交互所采用的通信协议选型无非就是两类:HTTP API(RESTful API)和RPC。在如今的硬件配置与网络条件下,现代RPC实现的性能一般都是好于HTTP API的。我们以json over http与gRPC(insecure)作比较,分别使用ghz和hey压测gRPC和json over http的实现,gRPC的性能(Requests/sec: 59924.34)要比http api性能(Requests/sec: 49969.9234)高出20%。实测gPRC使用的protobuf的编解码性能更是最快的json编解码的2-3倍,是Go标准库json包编解码性能的10倍以上(具体数据见本文附录)。 ...

September 17, 2021 · 26 min · Tony Bai

Go 1.17新特性详解:module依赖图修剪与延迟module加载

本文永久链接 – https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17 Go module的引入终于让Go语言有了自己的包依赖管理标准机制与工具,虽说它的引入与推广过程略显坎坷,但不得不承认Go 1.11及之后的每一次Go版本发布,Go module都在进步!在Go 1.17版本中亦是如此,本篇我们就来详细聊聊在Go 1.17版本中Go module都有哪些重要的变化。 ...

August 19, 2021 · 10 min · Tony Bai