Go问答技术文章
-
Golang · Go问答 | 5天前 | interface · 测试 · 架构设计 · Go问答 · 代码评审 · Go 接口设计 接口定义位置 Go mock accept interfaces return structs Go 架构
Go 接口通常应放在使用方包里,而不是实现方为了 mock 提前导出一大组接口。本文通过调用方依赖、真实测试与多实现边界,说明什么时候该定义小接口,什么时候直接返回具体类型更清晰。300 收藏 -
Golang · Go问答 | 5天前 | goroutine · Context · Go问答 · 排查清单 · 服务超时 · goroutine泄漏 context.WithTimeout Go问答 CancelFunc Go context取消 Go服务超时
Go 服务已经返回超时,但后台 goroutine 仍在消耗连接和内存,往往不是超时参数太小,而是取消信号没有沿调用链传递或 CancelFunc 没有及时调用。本文给出从症状判断、代码修复到告警复盘的排查清单。304 收藏 -
用 Go 标准库实现 HTTP 文件上传时,不能只调用 FormFile 就直接落盘。本文通过一个最小项目说明请求体大小限制、multipart 解析、文件关闭、受控命名和上传后检查的实现顺序。466 收藏 -
Go 测试偶发失败时,可能是测试顺序依赖了共享状态。本文说明 go test 的 -shuffle 如何随机顺序、如何保存种子复现,以及怎样用隔离状态和清理逻辑修复问题。132 收藏 -
Go 测试容易因临时文件残留、环境变量串值而偶发失败。本文整理 t.TempDir、t.Setenv 和 t.Cleanup 的使用顺序、并行限制和检查清单,让测试资源能自动收口。245 收藏 -
Go 的 html/template 在链接、CSS 等上下文中会自动过滤不安全数据。页面出现 #ZgotmplZ 往往不是模板坏了,而是 URL 被判定为不可信。本文说明最小复现、协议白名单和不该绕过的安全边界。145 收藏