Go语言技术文章
-
Go 的 crypto/cipher.NewGCMWithRandomNonce 会为每次 Seal 自动生成 12 字节 nonce,并把 nonce 放在返回密文的最前面。本文用同一个 AES-GCM 示例核对密文布局、Open 的切片方式、附加数据校验和旧代码迁移边界。334 收藏 -
用同一份 Go 示例对比 len、utf8.RuneCountInString 和逐 rune 遍历,验证中文、emoji 与非法 UTF-8 的计数差异,并给出按字符截断时不切断编码的方法。406 收藏 -
用同一份 HTTP 请求验证 Request.CookiesNamed 的同名 Cookie 筛选、返回顺序、空切片和 Cookie 方法的单值差异,说明 Go 1.23 之后如何安全读取重复 Cookie。322 收藏 -
用 Go crypto/ecdh 运行示例核对 PrivateKey.Bytes 的固定长度、复制语义与 NewPrivateKey 校验边界,避免把敏感密钥材料当普通字节切片长期保存。422 收藏 -
用同一份 PNG 输入验证 image/png.DecodeConfig 的尺寸读取、Reader 消费位置和 Decode 配合方式,解释 bytes.Reader、Seek 与不可回退流之间的边界。185 收藏 -
用同一个 httptest 服务验证 Go RoundTripper 总耗时与 httptrace.ClientTrace 分阶段耗时的差别,给出按排障目标选工具的边界。269 收藏 -
Go 1.23 引入的 unique.Make 可以把可比较值规范化为 Handle。本文用同一组重复字符串复现实例,核对句柄相等、Value 取回和可回收缓存的边界。200 收藏 -
Go 的 http.Client 默认只返回最终响应。本文从一次重定向排查开始,演示如何在 CheckRedirect 中复制请求信息、限制敏感请求头,并保存可验收的重定向链。175 收藏 -
Go 使用 html/template 渲染表单时,校验失败不应只返回一句错误文本。本文用一个注册表单拆开 POST 分支、FormData 回填、字段级错误与焦点提示的调用链,并给出可回归的实现边界。116 收藏 -
embed.FS 读取静态资源时,文件路径必须遵守 io/fs 的相对路径规则。本文用 assets/ 与模板读取场景说明路径前缀、fs.ValidPath 和 fs.Sub 的边界,给出可复用的校验与测试写法。239 收藏 -
用一个可复现的 CSV 导入故障,讲清 encoding/csv 的 FieldsPerRecord、ErrFieldCount、ParseError 和 FieldPos 如何配合定位最后一行字段数不一致。443 收藏 -
Go 的 HTTP/1 服务端默认会在写响应前消费未读请求体。本文用分块上传与流式响应示例说明 ResponseController.EnableFullDuplex 的作用、Flush 的边界、HTTP/2 差异和关闭请求体的验收方法。164 收藏 -
从 context.WithTimeout、Done 和 Err 的真实控制流出发,说明为什么设置超时不等于 goroutine 自动停止,并给出可验证的退出写法。287 收藏 -
slices.Grow 的承诺是为接下来的 n 个元素预留至少够用的空间,不是把容量固定成某个数字。理解 len、cap、n 与 append 的关系,才能正确判断是否发生了额外分配。252 收藏 -
上传接口只需要判断图片格式和尺寸时,不必立刻解码整张像素数据。本文用 image.DecodeConfig 说明格式探测、Config 返回值、流位置和大文件校验的边界。140 收藏