Go教程技术文章
-
通过有界 channel、select 和 context,把压力显式传回生产端。183 收藏 -
Go 1.24 引入 os.OpenRoot 后,如何把用户传入的相对路径限制在指定目录内?本文用一个可运行的文件读取示例,验证正常打开、绝对路径和 .. 目录逃逸三类结果。182 收藏 -
理解 Allow、Wait、Reserve 和 Burst 的区别,给接口加上可解释的限流策略。181 收藏 -
浏览器上传大文件时,Go 服务端要把分片编号、字节范围、校验和与合并状态分开设计。本文用可落地的 HTTP 接口拆解 Range 边界、重复分片、失败重试和断点恢复。179 收藏 -
Go 1.25 为 sync.WaitGroup 增加 Go 方法,把启动 goroutine、计数和 Done 收口到一个调用里。本文对比旧写法,说明空 WaitGroup 的启动时机、panic 约束、嵌套任务和复用边界。179 收藏 -
用 Go 标准库 log/slog 为请求日志绑定稳定的组级属性,比较 With 与 WithGroup 的差异,并通过并发测试确认字段不会串请求。178 收藏 -
Go 服务渲染首屏时,直接把 json.Marshal 结果转成 template.JS 很容易越过 html/template 的安全边界。更稳的做法是把结构体直接放在 script 的 JavaScript 值位置,让 html/template 按上下文生成安全 JSON;少量字段则用 data-* 属性。177 收藏 -
Golang · Go教程 | 1星期前 | 错误处理 · go · 模板 · 后端开发 · 渲染 · Go Template html/template text/template 模板运行 missingkey
Go 模板渲染可选片段时,字段缺失不一定会立刻报错。本文用 text/template 的模板运行、Option("missingkey=error") 和显式分支拆开默认行为、严格校验与可选字段的边界,给出可直接运行的处理方式。177 收藏 -
用一个请求日志小项目说明 Go slog.Handler.WithAttrs 的正确用法:把稳定字段提前绑定到 Handler,再让每次 LogAttrs 只写变化字段,同时验证并发输出与字段快照边界。177 收藏 -
用运行手册方式讲解 Go HTTP 服务优雅停机:识别 SIGTERM、停止接流量、等待正在处理的请求、设置超时退出,并给出回滚路径、告警确认和复盘清单。176 收藏 -
在 database/sql 中使用 QueryContext、ExecContext 和事务 context。175 收藏 -
Go 中复用 time.Timer 时,Reset 之前必须先处理可能残留的通道信号;否则循环可能立刻走旧分支。本文用一个可运行的轮询例子说明 Stop、<-timer.C、Reset 和 ctx.Done 的边界。175 收藏 -
Go 的 http.Client 默认只返回最终响应。本文从一次重定向排查开始,演示如何在 CheckRedirect 中复制请求信息、限制敏感请求头,并保存可验收的重定向链。175 收藏 -
Golang · Go教程 | 1个月前 | golang · JSON · 故障排查 · Go教程 · 接口设计 · JSON Go 接口兼容性 DisallowUnknownFields 严格解码
接口增加 json.Decoder.DisallowUnknownFields 后,旧客户端多传字段会从静默兼容变成 400。本文用一个订单接口故障复盘这个变化,说明如何定位触发条件、保留严格校验的收益,并通过灰度和版本边界避免再次误伤旧请求。174 收藏 -
用 Go 的 base64.NewEncoder 流式编码时,Write 只处理完整 3 字节块,尾部数据要靠 Close 刷出;本文结合源码说明部分写入和错误传播的判断方法。174 收藏