Go教程技术文章
-
Go 上传接口应在首次读取前包装 MaxBytesReader,并识别 MaxBytesError 返回 413。通过原始正文示例说明 ContentLength、完整读取、multipart 内存阈值、临时文件清理及单文件限制的区别。312 收藏 -
Go log/slog 的 Record 是带有隐藏属性状态的日志记录。本文说明普通赋值为什么可能共享状态,怎样用 Record.Clone 安全复制,并结合 AddAttrs、Attrs、Handler 分支和 NewRecord 给出可落地的选择。312 收藏 -
Go 1.27 的 crypto/x509 已支持 ML-DSA 私钥、公钥和签名。本文从 PEM/DER 解析开始,说明怎样读取 *x509.Certificate、判断 ML-DSA-44/65/87,并梳理旧版本、FIPS 模式和解析与验证的边界。312 收藏 -
本文按 fitsio v0.3.0 的公开 API,说明如何用 NewHeader 和 Card 创建带 EXTNAME、DATE-OBS 等关键字的主HDU,再通过 Create、Write 和 Close 写入 FITS 文件,并列出字段、轴长度和资源关闭的回归检查项。312 收藏 -
通过每次 Read 前后的 InputOffset 记录 CSV 输入消费范围,结合错误与输入版本回看原始字节,说明预读、多行字段、字节变换和失败后续传的边界。312 收藏 -
用 Go range over func 和 iter.Seq2 实现可提前停止的函数迭代器,区分空输入、正常结束与读取错误,保留清晰的错误边界。312 收藏 -
Golang · Go教程 | 2个月前 | golang · 服务端 · 故障排查 · net/http · 连接泄漏 StateIdle ConnState Go net/http StateHijacked
Go net/http 的 ConnState 能记录连接从新建、活跃、空闲到关闭的状态变化,但它不是按请求计数的万能监控器。本文用一个连接数持续上涨的场景,建立状态计数、识别 Hijacked 长尾,并用复现和回收检查确认问题是否真正消失。311 收藏 -
Go 服务收到请求取消后,如何让审计写入、指标上报等短收尾任务继续完成?用 context.WithoutCancel 保留值但切断取消信号,并补上独立超时。311 收藏 -
Go 1.27 的 HTTP/1 Response.Body 在 Close 时会有限度排空未读内容,以提高连接复用机会。本文用读取边界、Transport 配置和复查指标说明该行为能解决什么,哪些场景仍要显式限制响应体。311 收藏 -
本地模块修改后 Go 仍使用旧版本时,按 GOWORK、go.work 的 use 路径、go list 目录和 GOWORK=off 对照逐层定位工作区边界。311 收藏 -
filepath.IsLocal 能用纯词法规则拒绝绝对路径、空路径和会逃出当前目录的路径。本文给出安全拼接函数、跨平台边界、内部点段判断、Windows 保留名说明,以及符号链接场景下使用 os.Root 的加强方案。311 收藏 -
Go 的 fs.FS 可以让配置、模板和静态资源读取逻辑脱离具体存储位置。本文用同一个 LoadConfig 函数接入 os.DirFS 与 embed.FS,说明 fs.Sub、路径规则、安全边界和 MapFS 测试方法。311 收藏 -
Go 1.27 让 go test 默认启用 stdversion 检查。本文说明它如何依据 go.mod 与构建标签识别过新的标准库调用,并给出升级与 CI 中的处理边界。311 收藏 -
用 Go 标准库 log/slog 为一次请求建立 request、http、upstream 嵌套属性组,掌握 WithGroup、With、slog.Group 与 LogAttrs 的使用边界,并处理 context、脱敏和性能问题。311 收藏 -
reflect.TypeFor 读取的是泛型参数代表的静态类型,reflect.TypeOf 读取的是值装入接口后的动态类型。本文用接口、指针接口和 Elem 的对照说明两者的差异与选择方法。311 收藏