团队须统一Go版本(如1.21.x LTS)及GOPATH、GOBIN环境变量,使用goenv/gvm管理版本;通过模板仓库生成标准项目结构与Makefile;固化工具链至tools.go并配置golangci-lint;用pre-commit自动执行格式化与检查;CI/CD复用Makefile目标确保一致性。
团队必须使用相同版本的Go,避免因语言特性或工具链差异引发构建失败。推荐用goenv或gvm管理多版本,但生产环境应锁定一个LTS版(如1.21.x),并在.go-version文件中声明。
所有成员需配置一致的GOPATH(建议设为$HOME/go)和GOBIN(如$HOME/go/bin),并确保GOBIN在PATH最前——否则本地安装的工具(如gofumpt)可能被系统旧版覆盖。
akefile新建项目时,不靠手工建目录,而是用团队维护的模板仓库(如team-go-starter)生成基础结构,含cmd/、internal/、pkg/、api/等标准分层,以及预置的Makefile。
Makefile封装高频命令,例如:
把常用工具(gofumpt、revive、staticcheck、golangci-lint)的版本和配置固化到项目中:
CI流程(如GitHub Actions)不应重复定义格式化或检查逻辑,而应直接调用项目中的Makefile目标。例如:
不复杂但容易忽略