Go语言技术文章
-
Go time.Duration.Abs 遇到 math.MinInt64 时会返回 math.MaxInt64。本文解释 int64 纳秒范围、唯一不对称边界,以及超时和重试场景下的业务上限检查方法。427 收藏 -
以一个订单接口为例,拆开 Go 1.27 encoding/json/v2 的迁移步骤,核对字段标签、旧 JSON 兼容性、测试策略与可回滚边界。426 收藏 -
Go 中需要把多个文件、字符串或网络输入按顺序交给同一个消费函数时,可以用 io.MultiReader 组成连续输入流。本文说明顺序读取、EOF、非 EOF 错误和底层资源关闭责任。426 收藏 -
Go CookieJar 不保存服务端 Cookie,常见原因不是 Set-Cookie 消失,而是 Client 没有配置 Jar,或 Cookie 的域名、路径、Secure、过期时间与下一次请求 URL 不匹配。本文给出一套可复用的排查和修复写法。426 收藏 -
用 Go os/exec 分别读取 stdout 与 stderr,掌握 Start、并发消费管道和 Wait 的正确边界,避免输出混合、管道阻塞和误判退出状态。426 收藏 -
Go 在单 goroutine 中允许 range map 时 delete,但遍历顺序不稳定,新增键可能跳过;并发读写仍需锁或单 goroutine 所有权。426 收藏 -
用 Go benchmark 公平比较字符串拼接实现,掌握 ReportAllocs、AllocsPerRun、B/op、allocs/op 与 b.Loop 的使用边界。426 收藏 -
用 goroutine 与 goroutineleak profile 对照数量趋势和阻塞栈,区分 Go 中正常长期存活的 worker 与真正无法唤醒的 goroutine 泄漏,并给出修复后的复测方法。426 收藏 -
Go 1.25 的 runtime/trace.FlightRecorder 用内存环形缓冲持续保留最近一小段运行时追踪,等异常延迟发生时再写出文件。本文对比传统 Start/Stop 采集方式,给出 HTTP 服务接入、触发写盘和资源边界检查。425 收藏 -
用 Go 的 http.Server.ConnState 观察连接从建立、活跃、空闲到关闭的状态变化,并结合超时和异常断开日志定位连接问题。425 收藏 -
用一个可运行的 Go HTTP 示例说明 http.Server.ConnContext 适合绑定连接级租户标识的边界,以及如何在请求处理中安全读取、验证和测试它。425 收藏 -
Go 1.24 用 go:wasmexport 把 Go 函数暴露给 WebAssembly 宿主。本文从 WASI reactor 和宿主调用实验入手,核对导出顺序、参数类型和初始化边界。425 收藏 -
Go 校验接口 HMAC 签名时,不要用普通字符串比较。本文用 crypto/hmac 和 hmac.Equal 说明摘要重算、编码边界、请求体一致性与常见排查方法。425 收藏 -
解释 Go ResponseController.Flush 为什么返回不支持,比较 errors.Is 降级、ResponseWriter Unwrap 修复和旧版 Flusher 断言,并给出可执行测试。425 收藏 -
调用 context.WithCancel 只能发出取消信号,不能替你证明子协程已经结束。本文用一个可复测的 worker 示例说明如何结合 ctx.Done、defer wg.Done 和 Wait 确认退出,并指出常见的提前返回与阻塞边界。424 收藏