Go教程技术文章
-
表驱动测试加上 t.Parallel 后,真正需要解决的是每个子测试的数据边界。本文从 t.Run、循环变量、局部副本和 Cleanup 的生命周期说明如何避免并行子测试互相污染。214 收藏 -
Go 模糊测试不是输入越大越好。本文用 testing.F 的 seed、前置过滤和 go test 运行参数,把输入长度、无效样本、最小化时间与总运行时间放进一套可控预算。214 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · JSON · Go教程 · encoding/json · Go encoding/json bytes.Buffer json.Compact JSON压缩
Go json.Compact 用已有 JSON 字节和 bytes.Buffer 生成紧凑 JSON,只删除结构中的无意义空白,不改动字符串值。本文说明最小用法、错误处理、Buffer 复用,以及它和 json.Indent、Marshal、HTMLEscape 的边界。214 收藏 -
用 Go 标准库 expvar 注册请求计数器并通过 /debug/vars 暴露 JSON 指标,覆盖独立 Handler、并发更新、重复注册和最小读取方式。214 收藏 -
用 Go 的 io.CopyN 处理固定长度读取时,区分完整复制、短读 EOF 与底层读取错误,并给出可验证的判断代码。213 收藏 -
errors.As 不只匹配具体错误类型,也能匹配错误链中实现某个接口的错误。声明接口变量并把其地址传入 errors.As,即可按能力处理不同实现,同时保留多层包装上下文。213 收藏 -
Go 验证 HMAC 时应先用同一密钥和同一原始消息重算标签,再把对方标签解码为字节,最后交给 hmac.Equal 做恒定时间比较。本文给出函数与 Webhook 示例。213 收藏 -
Go 标准库 ServeMux 可以在路由模式中声明 {id} 等命名通配符,再用 Request.PathValue 读取。本文说明单段与尾通配符的区别、空字符串边界,以及直接测试处理器时如何用 SetPathValue 准备参数。213 收藏 -
用 encoding/binary 的 BigEndian 统一读写固定结构,说明结构体字段布局、binary.Read 与 binary.Write 的用法,以及短数据和字节序不一致时的处理边界。213 收藏 -
Go 1.27 为数据库驱动增加 RowsColumnScanner,让驱动可以按当前列直接写入用户目标。本文拆开 NextRow、ScanColumn、ScanContext 与旧版 Next 的职责,给出兼容实现骨架和接入边界。213 收藏 -
用Zap的两个Core和互斥等级条件,将Info、Warn写入app.log,Error及以上写入error.log。提供完整初始化代码,说明内部错误出口、文件同步关闭与轮转限制。213 收藏 -
Golang · Go教程 | 1星期前 | errgroup · 错误处理 · Context · 并发编程 · Go教程 · Go context 并发任务 errgroup WithContext
Go errgroup.WithContext 会在第一个任务返回非空错误时取消派生上下文,Wait 等待已启动的任务结束后返回第一个错误。本文用可取消的并发示例说明任务函数、结果通道、SetLimit 与退出顺序的写法。213 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · go · IO · Go 流式处理 io.Reader io.Pipe CloseWithError PipeWriter PipeReader
Go io.Pipe 不会自动把生产端的业务错误变成读取端错误。本文用 CloseWithError 传递原始 error,说明读取端如何先处理已有字节、再区分生产错误与 EOF,并整理成功、失败和提前关闭的关闭约定。213 收藏 -
Go json.Encoder 默认会把 JSON 字符串中的 &, <, > 写成 Unicode 转义。本文说明 SetEscapeHTML(false) 的用法、HTML 安全边界,以及 Encoder、Marshal 和 HTMLEscape 的区别。213 收藏 -
Golang · Go教程 | 2个月前 | 网络编程 · go · net/http · 兼容性 · Go http/2 HTTP/1 http.Protocols SetHTTP1 SetHTTP2 ALPN
Go 1.24 的 http.Protocols 让 Server 和 Transport 能显式声明 HTTP/1、TLS 上的 HTTP/2 以及明文 HTTP/2。本文从一个需要固定协议的服务场景出发,拆解 SetHTTP1、SetHTTP2 的配置位置、ALPN 边界和兼容检查。212 收藏