Go问答技术文章
-
Golang · Go问答 | 2星期前 | 日志 · 标准库 · go · 故障排查 · Go 结构化日志 ReplaceAttr log/slog WithGroup WithAttrs slog.Handler
Go log/slog 中字段消失,通常不是 Logger.With 没有传进去,而是 ReplaceAttr 返回了零值 Attr,或自定义 Handler 在 WithAttrs、WithGroup 中丢掉了状态。本文按调用链定位原因,并给出只过滤明确键名的修复写法。417 收藏 -
gzip.Reader 的完整性校验依赖读取到 EOF,不能用 Close 成功替代。本文区分读取与关闭错误,提供限制解压大小的完整示例,并说明提前停止、多成员和底层资源的处理边界。417 收藏 -
Go JSON null 会清空普通指针字段,但字段缺失与整数零有不同含义。通过独立快照、RawMessage 和存在标志处理配置更新,避免 nil 解引用与旧值残留。417 收藏 -
filepath.Glob遇到非法模式会返回ErrBadPattern,忽略err才容易误认为普通空结果。本文给出最小错误处理写法,区分无匹配与目录读取问题,并说明相对路径、星号和跨平台转义的边界。417 收藏 -
slog.WithGroup 只影响分组建立后追加的字段;JSONHandler 输出嵌套对象,TextHandler 则使用点号限定键名。本文用最小复现定位调用顺序、Group 混用和自定义 Handler 问题,并给出统一构造与测试方法。416 收藏 -
调整 GOGC 或 runtime/debug.SetGCPercent 后,延迟不会按固定方向变化。本文用固定工作负载、隔离的基准样本和延迟分位数,对照分析 GC 频率、堆空间、吞吐与 p95/p99 的关系。416 收藏 -
Go RSA-PSS 签名成功但验签失败时,优先对齐 digest、Hash 和 SaltLength。本文用 SHA-256 与等 Hash 盐长说明 SignPSS、VerifyPSS 的参数责任,并比较固定盐长与自动盐长在跨实现协议中的取舍。416 收藏 -
Go 1.25 起可以用 os.Root.Chmod 在受限目录树内修改文件权限。本文给出最小写法,说明相对路径、FileMode、错误分类和跨平台边界。416 收藏 -
Go GOPRIVATE 配置后私有模块仍走代理,常见原因是路径未命中、GONOPROXY 覆盖或配置没有进入目标进程。本文按公共代理、企业代理和校验数据库三条边界给出排查与修复方法。416 收藏 -
Go flac 的Num在固定块与可变块模式下分别表示帧序号和首样本编号。本文说明名义块长换算、多声道时间轴与v1.0.14短尾帧边界。416 收藏 -
Go 接口里放入 typed nil 指针后,接口本身可能不等于 nil;comma-ok 断言成功也不代表结果指针可用。本文用 T/V 两层模型和边界封装说明如何排查与处理。416 收藏 -
Golang · Go问答 | 3星期前 | 标准库 · HTTP · go · Cookie · cookie Go net/http Secure SameSite CHIPS Partitioned
Go 的 http.Cookie 增加 Partitioned 后,真正容易出错的是属性组合:Partitioned 必须和 Secure 一起使用,SameSite 则负责跨站发送策略。本文用标准库字段、Valid 检查和 Set-Cookie 序列化拆开这三个边界。415 收藏 -
围绕 go.mod、vendor/modules.txt 与构建模式,整理 Go inconsistent vendoring 的定位、重建和 CI 复查清单。415 收藏 -
Go HTTP 客户端的 goroutine 并发不等于连接会无限并行。本文围绕 Transport 的 MaxConnsPerHost、MaxIdleConnsPerHost 和请求排队关系,给出复用 Client、设置连接预算以及保留超时和响应体关闭的处理方式。415 收藏 -
区分Go HTTP客户端单次请求预算、响应体读取与外层重试总耗时,提供绑定Context并限制读体大小的示例,解释阶段超时、错误记录和资源释放。415 收藏