Go语言技术文章
-
从请求入口创建截止时间,沿 Go context 调用链传给服务层和下游阻塞操作,并说明局部子预算、取消传播、Err 判断与资源释放的实现边界。179 收藏 -
围绕 Go crypto/x509 的证书链验证,区分叶子证书、中间证书和信任根,说明 SystemCertPool、NewCertPool、VerifyOptions 以及常见错误的排查顺序。222 收藏 -
Go context.Value 适合携带请求级、跨 API 传播的元数据,不适合传业务参数或可选配置。本文用私有键类型、类型安全访问器和调用链示例划清使用边界。392 收藏 -
Go encoding/base64 的 DecodeString、Decode、AppendDecode 会忽略 CR 和 LF,但不会因此放行所有空白。本文梳理换行兼容边界、Strict 的真实作用,以及严格输入的处理方案。471 收藏 -
用 Go os/signal 和 NotifyContext 组织优雅停止:让取消信号传到后台 goroutine,等待资源收尾,并正确释放通知注册,避免服务退出后的 goroutine 泄漏。489 收藏 -
Go encoding/base64 的 NewEncoder 会把不足一个完整分组的尾部数据暂存在内部,必须调用 Close 才能刷新到目标 Writer。本文用最小代码说明正确关闭顺序、StdEncoding 与 RawStdEncoding 的 padding 边界,以及 io.Copy、文件资源和错误处理的组合方式。114 收藏 -
Go os/signal 的 channel 容量不是信号种类数量。本文从 Notify 的非阻塞发送、接收速度和退出生命周期出发,说明容量 1 何时足够,以及何时需要更大的缓冲。157 收藏