Go语言技术文章
-
解释 Go API 中 nil slice 与空 slice 的 JSON 差异,给出响应边界归一化、omitempty 边界和 encoding/json v1/v2 迁移测试方案。411 收藏 -
遍历结构体切片时,range 值变量会复制每个元素。本文用最小示例说明复制边界,并给出索引访问、取地址和基准测试的选择方法。305 收藏 -
用 Go crypto/rand 生成固定长度随机字节,再以 RawURLEncoding 转成 URL 安全令牌;同时说明 TTL、一次性消费和 Go 1.24 rand.Text 的适用边界。323 收藏 -
Go select 的 default 在没有就绪通信时会立即返回,放进永久循环容易造成忙等。本文给出删除 default 的阻塞写法、time.Ticker 退避方案,以及 channel 关闭、nil channel 和 context 取消的排查清单。231 收藏 -
用Go x509.VerifyOptions校验证书时,Roots、Intermediates和DNSName分别承担什么职责?本文给出CertPool组装方法、常见错误排查顺序和吊销检查边界。309 收藏 -
多个 goroutine 往同一个 Go channel 发送数据时,关闭权应交给发送方之外的协调者;本文用 WaitGroup 统一等待并给出提前退出边界。451 收藏 -
用 Go tls.Config.GetCertificate 根据 SNI 动态选择证书,覆盖精确匹配、通配符、默认回退、并发读取与热更新边界。265 收藏 -
Go 向已关闭 channel 发送会触发 panic。本文从发送生命周期出发,说明关闭责任如何划分,并给出多发送方等待后统一 close 的迁移写法与排查清单。402 收藏 -
用 Go multipart.Reader 按字段名设置上传上限,借助 limit+1 字节检测超量,并清理临时文件与请求级资源。456 收藏 -
从闭包变量绑定、Go 版本语义和 Timer 生命周期三个方向,排查循环创建 Go 定时回调时业务标识错位,并给出可落地的修复与回归清单。460 收藏 -
讲清 Go http.ServeContent 中 modtime 的真实作用:如何配合 Range、If-Range 和 Last-Modified 返回稳定的部分内容响应,并避开 time.Now() 造成的缓存问题。253 收藏 -
Go 服务在精简容器中调用 time.LoadLocation 失败,通常是 IANA 时区数据库缺失。本文梳理查找顺序,并给出安装 tzdata、嵌入 time/tzdata 与显式回退的部署方案。148 收藏 -
讲清 Go httptest.NewRequest 如何构造请求体、设置 ContentLength,并用 Handler 回归测试覆盖已知长度、未知长度和空请求体边界。260 收藏 -
Go 接口处理时间字段时,Unix 时间戳和 RFC3339 文本应按输入协议分别解析。本文用 time.Parse、time.Unix 和单位检查整理一套可复用的选择规则。453 收藏 -
Go多用户HTTP客户端不要共享同一个CookieJar。本文从串线症状出发,演示按用户创建独立cookiejar.Jar和http.Client,并说明并发、认证与生命周期边界。248 收藏