Go语言技术文章
-
Go cgo 报 pkg-config 找不到系统库时,先区分工具、.pc 元数据、头文件和链接器问题,再用 PKG_CONFIG_PATH、模块名与构建环境逐层排查。383 收藏 -
Go mod tidy 删除依赖后构建失败,通常是源码依赖图与实际构建输入不一致。本文从 tidy 差异、导入路径、生成代码、vendor、workspace 和 CI 入口逐层定位并给出可复查的修复方案。125 收藏 -
Go 本地 replace 不生效时,应核对主模块、模块身份、版本范围、本地目录基准及 go.work 覆盖。本文用双模块联调配置说明排查方法和迁回正式依赖前的收尾事项。244 收藏 -
Go work sync 没有更新某个模块的 go.sum,通常不是命令失效,而是它同步的是 workspace build list 到各模块的 go.mod;workspace 独有的校验记录由 go.work.sum 保存。本文按文件职责和命令边界说明如何判断结果。436 收藏 -
Go 项目出现 vendor inconsistent dependencies 时,通常是 go.mod 已变更而 vendor/modules.txt 仍是旧清单。本文按模块图、go mod vendor 和离线构建三个边界,给出恢复一致的排查顺序。449 收藏 -
Go 私有模块可用 GOPRIVATE 与 GONOSUMDB 排除公共校验数据库查询,同时保留公开依赖校验。本文区分代理和校验职责,并给出直连私仓及企业代理两种配置示例。358 收藏 -
GOPROXY=direct 只负责绕过模块代理并直接访问版本控制仓库,私有依赖仍需正确配置 GOPRIVATE、认证方式和 GOVCS。本文按路径、认证、仓库发现与代理策略给出排查顺序。209 收藏 -
Go GOPRIVATE 配置后私有模块仍走代理,常见原因是路径未命中、GONOPROXY 覆盖或配置没有进入目标进程。本文按公共代理、企业代理和校验数据库三条边界给出排查与修复方法。416 收藏 -
Go 的模块缓存不是构建缓存,默认位于 GOPATH/pkg/mod。本文用 go env GOMODCACHE 读取当前生效目录,并解释自定义配置、缓存迁移和安全清理时容易混淆的边界。205 收藏 -
介绍 Go 中 GODEBUG=http2debug=1/2 的使用边界,先确认 HTTP/2 协议,再按 stream ID 和关键帧定位连接、流控、RST_STREAM 与 GOAWAY 问题。310 收藏 -
Go runtime/metrics 提供 automatic、forced、total 三条 GC 周期计数。本文用 metrics.Read 读取它们,并通过相邻采样的增量判断 GC 来自运行时自动触发还是应用主动触发。452 收藏 -
Go 1.25 会在 Linux 容器中参考 cgroup CPU 带宽限制并可能周期更新 GOMAXPROCS。本文说明如何用 containermaxprocs=0 关闭容器感知,并区分 updatemaxprocs=0 与显式 GOMAXPROCS 的边界。389 收藏 -
解释 Go 1.25 在 Linux 容器中如何综合逻辑 CPU、CPU 亲和性和 cgroup CPU 限额计算 GOMAXPROCS,说明 CPU request、手动覆盖、GODEBUG 和自动更新的边界。388 收藏 -
使用 Go transform.NewReader 配合 GBK Decoder 将旧编码文本转换为 UTF-8。本文澄清包路径,给出有界读取示例,并说明编码来源、解码错误、输入输出上限与业务内容边界。122 收藏 -
Go 的 x509.CertPool.AppendCertsFromPEM 用于把 PEM 编码的证书追加到信任池。本文说明单个证书、证书链、系统根证书合并和 TLS 使用时的判断边界。193 收藏