Go语言技术文章
-
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 收藏 -
说明 Go archive/zip.FileHeader.SetModTime 的使用方式、UTC 转换、MS-DOS 时间精度和 Modified 字段迁移边界。443 收藏 -
Go text/template 默认允许 map 缺键继续执行,容易把数据问题变成空白或。本文用 Template.Option("missingkey=error") 让缺字段在 Execute 阶段返回错误,并对比 default、zero、error 的边界。 101 收藏 -
Go regexp.Expand 使用匹配索引从原文取出捕获组,并按模板追加到字节切片。本文通过资源标签示例说明变量边界、返回值、缺失组和批量展开的注意事项。443 收藏 -
Go math.Nextafter32 返回 float32 朝目标方向的下一个可表示值。本文用最小示例说明方向语义,并梳理相等输入、零值、NaN 与极值附近的边界,帮助区分邻接值操作和误差容忍判断。260 收藏