Go语言技术文章
-
解释 Go httptest.NewTLSServer 与默认 Transport 的证书信任差异,给出使用 ts.Client() 以及克隆测试 Transport 的正确写法。175 收藏 -
Go archive/zip 读取 Zip 文件时,要分别关闭 OpenReader 返回的归档句柄和 File.Open 返回的条目流。本文用单条目函数、io.Copy 和关闭边界表说明提前返回、循环 defer、NewReader 与底层 ReaderAt 的资源责任。175 收藏 -
Go context取消后下游循环仍运行,通常是阻塞调用、channel边界或context传递链没有覆盖。本文按检查清单定位取消信号、补齐退出分支,并区分协作式取消与等待goroutine结束的边界。175 收藏 -
说明 Go bufio.Scanner 读取超长单行时如何用 Buffer 调整 token 上限,正确处理错误与内存边界,并判断何时改用 bufio.Reader。175 收藏 -
Go io.NewOffsetWriter 把相对偏移映射到底层 WriterAt 的 base+off,适合文件分区、文件头和分段写入。本文讲清 Write、WriteAt、Seek、io.CopyN 及上限保护。175 收藏 -
Go 使用 netip.ParsePrefix 解析 CIDR、ParseAddr 解析待判断地址,再调用 Prefix.Contains 即可判断归属;误判时重点检查解析错误、地址族和 IPv4 映射 IPv6。175 收藏 -
本文解释 cgo 回调为什么需要用 //export 生成 C ABI 可见入口,并给出 C 桥接层注册回调、runtime/cgo.Handle 传递上下文的完整边界。175 收藏 -
Golang · Go教程 | 2个月前 | golang · JSON · 故障排查 · Go教程 · 接口设计 · JSON Go 接口兼容性 DisallowUnknownFields 严格解码
接口增加 json.Decoder.DisallowUnknownFields 后,旧客户端多传字段会从静默兼容变成 400。本文用一个订单接口故障复盘这个变化,说明如何定位触发条件、保留严格校验的收益,并通过灰度和版本边界避免再次误伤旧请求。174 收藏 -
用 Go 的 base64.NewEncoder 流式编码时,Write 只处理完整 3 字节块,尾部数据要靠 Close 刷出;本文结合源码说明部分写入和错误传播的判断方法。174 收藏 -
Go 1.25 的 sync.WaitGroup.Go 把启动 goroutine、计数和完成收口放进一个方法,但它不负责取消任务,也要求 f 不发生 panic。本文用一个批处理示例拆开调用链、闭包变量和复用边界。174 收藏 -
Golang · Go教程 | 1个月前 | go并发 · pprof · 故障排查 · Go教程 · 版本升级 · GODEBUG runtime/pprof Go 1.27 goroutine 标签 tracebacklabels
Go 1.27 让带有 go 1.27 版本指令的模块在运行时回溯中默认显示 runtime/pprof goroutine 标签。本文从标签来源、go.mod 版本边界、tracebacklabels=0 回退和排查清单四个角度,说明什么时候保留诊断信息,什么时候关闭敏感标签。174 收藏 -
url.ParseRequestURI 面向 HTTP 请求目标,只接受绝对 URI、以斜杠开头的绝对路径或星号形式。本文用迁移清单梳理它与 url.Parse 的差异、字段结果、失败输入,以及语法通过后仍需补充的路由和安全策略。174 收藏 -
Golang · Go教程 | 2个月前 | golang · HTTP · 安全 · Go教程 · net/http · net/http 请求超时 MaxBytesReader Go HTTP 请求体限制 内存防护
Go HTTP 服务接收上传、Webhook 或 JSON 请求时,单靠 ReadAll 很容易被异常大请求拖高内存。本文从请求体上限、读取超时、状态码和日志字段四个边界入手,给出一套可复查的 net/http 防护实现。173 收藏 -
用 sync.Pool 复用 bytes.Buffer 可以减少短生命周期对象的分配,但必须处理 Reset、取出类型和跨请求数据污染问题。本文从一次响应体串数据的故障现场出发,给出可验证的实现、边界和复查方式。173 收藏 -
Go 泛型 API 不必先把参数塞进 interface{} 再做类型断言。comparable 负责可比较类型,~T 负责接收底层类型相同的自定义类型;约束只写调用方和函数体真正需要的能力,API 才不会被过度收窄。173 收藏