标签为“Protobuf”的页面如下
文章
继续阅读
用本地 Stub 解决 Go Proto 冲突
在 Go Monorepo 项目中,引入一个内部 RPC 依赖本该是一件简单的事——加一行 require,配一个 replace,代码编译通过,似乎万事大吉。但服务一启动,直接 panic:
panic: proto: file "validate/validate.proto" is already registered
panic: proto: file "common.proto" has a name conflict over trpc.myservice.common.Team两个 panic,两个不同的 proto namespace 冲突。这是 Go protobuf 生态中一个经典的「传递依赖地狱」问题。
本文记录一次真实问题的根因分析和解决方案:如何通过手写一个本地精简 Stub,以最小代码代价绕过 proto 注册机制,彻底消除冲突。
文章
继续阅读
google.protobuf.Value 用法与最佳实践
在 Go 后端开发中,google.protobuf.Value 是一个经常被提及但容易被误用的类型。它属于 Protobuf 的 Well-Known Types(内置类型),设计初衷是解决动态类型问题——即在静态的 message 定义中承载任意的 JSON 兼容数据。
本文从 Go 后端开发者的视角出发,系统讲解 Value 的设计理念、Golang 实战用法,以及常见的最佳实践和避坑指南。