Go问答技术文章
-
Go 的 regexp.FindStringSubmatchIndex 返回的是字节下标,不是字符位置。本文用带中文的日志片段说明如何读取捕获组、处理未匹配分组,并避免切片越界。312 收藏 -
Go 的 bytes.Buffer.AvailableBuffer 返回可借用的尾部空间,但它不是已经写入的数据。本文用最小程序说明 Bytes、AvailableBuffer、Write 与 Reset 的边界,避免把缓冲容量误当成有效长度。312 收藏 -
用 Go archive/tar.Reader.Next 遍历带 PAX 扩展的 tar 包时,扩展头不会作为普通文件交给业务层。本文说明如何读取真实 Header、处理当前文件剩余数据,并区分 io.EOF 与 ErrInsecurePath。312 收藏 -
发布 Go 模块时,不能只检查 vendor 目录是否存在。通过重新生成 vendor、对照 vendor/modules.txt 和强制 -mod=vendor 构建,可以及时发现依赖版本漂移。312 收藏 -
多个 goroutine 共用一个 channel 时,不要让任意发送方直接关闭它。本文用 WaitGroup 统一等待发送方,用协调者关闭数据 channel,并用 done 处理接收方提前退出,避免 send on closed channel 和发送 goroutine 泄漏。312 收藏 -
用 Go 的 encoding/xml 流式读取 XML 时,EndElement 不是靠字符串猜测匹配。本文用 xml.Name 栈解释嵌套结束标签、自闭合标签、命名空间和 io.EOF 的判断方式。312 收藏 -
Go execution trace 看不到自定义任务区域,通常与采集窗口、Task 与 Region 的边界、Context 传递或查看范围有关。本文按四个检查点定位原因,并给出可复用的 runtime/trace 写法。312 收藏 -
Golang · Go问答 | 1个月前 | 并发 · 故障排查 · Go问答 · encoding/json · encoding/json atomic.Value Go配置热加载 Decoder 配置复用 旧值残留
Go 服务热加载 JSON 配置时,偶发读到旧值通常不是文件没有更新,而是解码目标被复用、缺失字段没有覆盖旧内容,或读写过程没有通过不可变快照切换。本文从一次线上故障切入,给出可复现证据、修复代码和回归检查。311 收藏 -
Go fuzzing 里,F.Add 负责把开发者已知的边界样本放进种子语料,F.Fuzz 再从这些样本出发进行覆盖引导的变异;失败输入保存到 testdata/fuzz 后,会成为后续 go test 默认执行的回归样本。311 收藏 -
Go HTTP Client 连接不复用时,先用可观测的 Body 包装器确认 Close,再用 httptrace 判断连接是否进入复用池,并检查 Client 与 Transport 的生命周期。311 收藏 -
解析 Go 查询字符串时,url.ParseQuery 可能同时返回错误和部分 Values。本文用源码顺序说明合法参数为何保留、错误项如何跳过,以及 HTTP 入口该如何选择严格策略。311 收藏 -
Golang · Go问答 | 2个月前 | 超时 · 错误处理 · go · Context · errors.Is Go context deadline exceeded WithCancelCause
Go 服务里看到 context deadline exceeded,不代表所有请求都只是超时。本文从上游主动取消、下游调用超时和本地截止时间三种现场出发,演示 WithCancelCause、Cause 与 errors.Is 的判断顺序,让日志能指出真正的中断来源。309 收藏 -
Go 复用 time.Timer 时,Reset 的调用时机、旧值处理和 Go 版本语义容易混在一起。本文用一个超时循环拆开 stopped、expired、drain 与 1.23 之后的行为边界。309 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · golang · HTTP · url · Go问答 · Go path net/url RawPath url.URL.JoinPath URL转义
Go 的 url.URL.JoinPath 会清理路径片段,但不会替你判断斜杠是分隔符还是数据。本文用 Path、RawPath 和 PathEscape 对比说明 URL 拼接与转义的边界。309 收藏 -
Go nil 接收者调用方法不一定会 panic,关键要区分 nil 指针、nil 接口以及方法体是否发生字段解引用。本文用最小示例和检查表定位真实的 panic 边界。309 收藏