Go教程技术文章
-
Golang · Go教程 | 2星期前 | 标准库 · golang · JSON · 配置管理 · go · 工程实践 · 空值处理 encoding/json Go教程 MarshalText encoding.TextMarshaler 配置序列化
同一个配置值如果在 JSON、日志和环境变量之间各写一套转换,很快就会出现格式漂移。本文用 encoding.TextMarshaler 统一文本表示,拆开 json.Marshal 的调用规则、指针接收者、错误处理和 nil 边界,并给出可运行的验证示例。142 收藏 -
用 Go 的 io/fs.Sub 把嵌入文件系统收窄到一个子目录时,真正容易出错的是目录名和 Open 路径的边界。本文通过 embed.FS 示例拆开 fs.Sub、fs.ValidPath 与 fs.PathError 的关系,并给出可复现的排查方法。142 收藏 -
通过源码调用图与二进制符号表两个证据边界,讲清 govulncheck source、binary 模式的运行方式、结果差异、局限和修复决策。142 收藏 -
围绕 Go maps.DeleteFunc 清理不合格键,解释回调遍历期间的删除语义、判定函数副作用、nil map 行为与并发安全边界,并给出可验证的代码和检查清单。141 收藏 -
用 Go netip.Prefix.Contains 实现路由白名单时,IPv4、IPv4-mapped IPv6 与前缀长度必须先统一判断,本文给出可运行的核验方法。141 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · 性能 · 迭代器 · 字符串处理 · Go教程 · Go Go 1.24 iter.Seq strings.SplitAfterSeq 字符串分段
strings.SplitAfterSeq 从 Go 1.24 开始返回单次使用的 iter.Seq[string],按分隔符产出保留分隔符的字符串片段。本文用一个可运行的小实验说明如何消费它、如何提前停止,以及空分隔符和无匹配时该如何验收。141 收藏 -
Go 1.26 的 newexpr fixer 可以把 newInt(10) 一类辅助函数改成 new(10)。本文从可选指针字段出发,说明 go fix -newexpr 的适用条件、go.mod 版本门槛,以及公共 API 删除前的回归边界。141 收藏 -
Golang · Go教程 | 2个月前 | HTTP服务 · Go教程 · 后端开发 · 超时配置 · 服务稳定性 · net/http WriteTimeout HTTP超时 Go教程 ReadHeaderTimeout IdleTimeout
Go HTTP 服务不要只靠默认超时。请求头、请求体、响应写入和空闲长连接各有边界,ReadHeaderTimeout、ReadTimeout、WriteTimeout、IdleTimeout 要分开设计。140 收藏 -
Golang · Go教程 | 1个月前 | HTTP · go · 浏览器 · 前端数据上报 · Go Beacon API navigator.sendBeacon 页面关闭上报 Go HTTP 接收 Beacon keepalive fetch
页面关闭、切换标签页或手机锁屏时,普通 fetch 可能来不及把埋点送到服务端。本文用 Go 接收 navigator.sendBeacon 的 POST 请求,拆开 Content-Type、204 响应、队列大小与 keepalive fetch 兜底边界,给出可验证的处理方式。140 收藏 -
Go 的 bufio.Scanner 默认有 token 缓冲上限。本文用长日志场景说明如何在第一次 Scan 前调用 Buffer,如何检查 Err,以及什么时候应该换用 bufio.Reader。140 收藏 -
用一个可复现的分片读取场景,说明 os.File.ReadAt 为什么适合并发定位读取,如何用 io.SectionReader 限定区间,以及短读、EOF 和缓冲区复用的验收边界。139 收藏 -
Go 解析带引号换行的 CSV 字段时,不要先按换行符切分;使用 encoding/csv 的 Reader 按完整记录读取,再处理字段数和 ParseError。139 收藏 -
Go 的 io.Copy 会优先尝试 WriterTo 和 ReaderFrom 快路径。本文用可复现的接口实现拆开选择顺序,并说明何时回退到缓冲复制。138 收藏 -
用 go generate 把源定义、生成器和重复 Go 代码连接起来,掌握指令格式、生成文件标记、执行检查与失败回滚。136 收藏 -
使用 archive/tar 解包时,先用 filepath.IsLocal 拒绝绝对路径和 .. 条目,再按 TypeDir 创建目录、按普通文件条目写入内容,保留 tar 原有目录结构。136 收藏