工具链与质量
格式化与导入
gofmt/go fmt:官方格式,团队以格式化后 diff 为准。goimports:整理 import 分组与未使用导入,多数编辑器默认集成。
静态分析
go vet ./...:常见错误(printf 格式、atomic误用、copy重叠等)。staticcheck(第三方):更深规则集,CI 中广泛使用。
模块与构建信息
go version -m <binary>:查看嵌入的模块版本信息(需构建时带模块信息)。-trimpath:可重现构建、去除本地路径。
竞态与模糊测试
- CI:
go test -race ./...(耗时与内存显著增加,可抽样或对关键包启用)。 - 模糊测试语料目录
testdata/fuzz可提交以回归历史崩溃用例。
文档
- 导出符号上方注释以
// Name开头会被go doc/ pkg.go.dev 收录。 go doc net/http Client本地快速查看。
版本与工作区
团队统一 go 版本(asdf/mise/Docker 镜像)。多模块仓库用 go.work 时明确是否提交,并在 CI 中 go work sync 或显式不用 work 文件做发布构建,避免「仅本地能编过」。