Go教程技术文章
-
Go 1.25 的 sync.WaitGroup.Go 把启动 goroutine、计数和完成收口放进一个方法,但它不负责取消任务,也要求 f 不发生 panic。本文用一个批处理示例拆开调用链、闭包变量和复用边界。174 收藏 -
Golang · Go教程 | 4天前 | go并发 · pprof · 故障排查 · Go教程 · 版本升级 · GODEBUG runtime/pprof Go 1.27 goroutine 标签 tracebacklabels
Go 1.27 让带有 go 1.27 版本指令的模块在运行时回溯中默认显示 runtime/pprof goroutine 标签。本文从标签来源、go.mod 版本边界、tracebacklabels=0 回退和排查清单四个角度,说明什么时候保留诊断信息,什么时候关闭敏感标签。174 收藏 -
根据读写频率、临界区大小和语义选择同步工具。173 收藏 -
Golang · Go教程 | 1个月前 | golang · HTTP · 安全 · Go教程 · net/http · 接口防护 · net/http 请求超时 MaxBytesReader Go HTTP 请求体限制 内存防护
Go HTTP 服务接收上传、Webhook 或 JSON 请求时,单靠 ReadAll 很容易被异常大请求拖高内存。本文从请求体上限、读取超时、状态码和日志字段四个边界入手,给出一套可复查的 net/http 防护实现。173 收藏 -
Golang · Go教程 | 1个月前 | WaitGroup · 并发编程 · Go教程 · Go 1.25 · Go并发 WaitGroup errgroup Go 1.25 sync.WaitGroup.Go
Go 1.25 为 sync.WaitGroup 增加 Go 方法,适合只等待一组 goroutine 完成的场景。本文用旧写法对比新写法,说明迁移边界、错误处理选择和最小验证方式。172 收藏 -
strings.Fields 适合按空白切分普通文本,却不能把带引号的命令参数当成一个整体。本文从文件名带空格的真实输入出发,比较 Fields、简单状态机和标准库参数解析的边界,并用表驱动测试固定转义行为。172 收藏 -
Go 1.27 的 encoding/json/v1 已由 v2 实现支撑。本文解释如何用 DefaultOptionsV1 建立兼容基线,再逐项切换字段匹配、omitempty、nil 容器和重复字段等语义,降低一次性迁移风险。172 收藏 -
Go channel 消费者无法退出时,先用 goroutine profile 找阻塞栈,再用 Context 补取消分支,并按 channel 所有权选择关闭责任。171 收藏 -
Golang · Go教程 | 1星期前 | sync · golang · 文件操作 · Close · os.File · 错误处理 数据持久化 文件落盘 Go os.File.Sync Go Close
Go 文件写入后为什么还要区分 Sync 和 Close?本文从 Write、Sync、Close 的调用链出发,说明落盘确认、defer 顺序与错误返回值该怎么处理。168 收藏 -
用 Go fuzzing 为解析函数补齐边界输入:从 f.Add 种子、限定 fuzz 时长,到把失败语料固化为可重复的回归测试。168 收藏 -
给非核心依赖设计 fallback,让主流程在部分失败时仍可返回。167 收藏 -
给管理接口增加 IP 白名单时,字符串比较、IPv4 与 IPv6 混用、掩码边界都容易出错。本文使用 Go netip.ParsePrefix 和 Prefix.Contains 搭建可复用的 CIDR 白名单校验器,补齐配置检查、匹配顺序和失败回归用例。167 收藏 -
Go slog.WithGroup 可以把同一请求的字段放进稳定的 JSON 层级,但嵌套组、空组和同名字段处理不清楚时,日志检索仍会混乱。本文用一段可运行示例说明组名、字段覆盖、空组省略和 JSON 验收方法。167 收藏 -
Golang · Go教程 | 2个月前 | goroutine · Context · 超时控制 · Go教程 · 后端开发 · Go Goroutine context 超时控制 WithTimeout Done QueryContext
本文用完整工作流讲解 Go context 超时控制:从 HTTP 入口创建超时预算,把 ctx 传给 DB 查询和远程请求,到 goroutine 监听 Done、及时退出并释放资源,最后给出验证和上线清单。166 收藏 -
Golang · Go教程 | 2个月前 | WaitGroup · channel · 并发编程 · 优雅关闭 · Go教程 · WaitGroup Channel关闭 Go channel 并发收尾 done信号
本文把 Go channel 关闭拆成一套可复用工作流:先确定谁负责关闭,再用 done 信号通知停止,用 WaitGroup 等待协程收尾,最后关闭结果通道并验证没有 panic 和泄漏。165 收藏