项目初始化与依赖管理 (Go Modules)

这是现代 Go 开发最常用的指令集。

指令用途备注
go mod init <name>初始化一个新的 Go 模块生成 go.mod 文件
go mod tidy整理依赖自动添加缺失的包,移除未引用的包(最常用,每次引入新库都会用
go mod download下载依赖包到本地缓存通常 tidy 会自动处理
go mod vendor将依赖包缓存到项目下的 vendor 目录某些企业内网环境需要
go mod graph打印模块依赖图用于排查复杂的版本冲突
go get <path>@v1.x下载并添加特定版本的依赖会更新 go.mod

编写、编译与运行

这是代码循环(Code-Build-Run)的核心。

指令用途技巧
go run .直接运行当前目录下的代码适合临时调试,不会产生二进制文件(本地开发联调
go build编译代码默认生成与目录同名的可执行文件(最后容器化部署
go install编译并将结果安装到 $GOPATH/bin常用于安装全局工具
go fmt ./...格式化代码强制统一代码风格(通常插件会自动执行)
go vet ./...静态代码分析检查代码中潜在的低级错误(如 Printf 参数不匹配)

测试与性能分析 (Testing)

Go 自带了非常强大的测试工具链,无需第三方库。

  • go test ./...: 运行当前项目下所有的单元测试。
  • go test -v: 打印详细的测试日志。
  • go test -run <Regexp>: 只运行名称匹配正则表达式的测试函数。
  • go test -bench=.: 运行压力测试 (Benchmark)。
  • go test -cover: 查看测试代码覆盖率
  • go tool cover -html=c.out: 生成网页版的覆盖率报告,直观查看哪行代码没被测到。

调试与排查 (Toolbox)

当你需要深入探究底层逻辑或性能瓶颈时。

  • go env: 查看当前 Go 的环境变量(如 GOPROXYGOOSGOARCH)。
    • go env: 列出全部环境变量及其当前值
    • go env <VAR>: 查看特定变量(如 go env GOPATH)。
    • go env -w VAR=VALUE 设置/修改变量(常用,-w 代表 Write)。
    • go env -u VAR 重置/恢复变量到默认值(-u 代表 Unset)。
    • go env -json 以 JSON 格式输出,方便脚本解析。
  • go version: 查看当前的 Go 版本。
  • go doc <pkg>.<func>: 在终端快速查看某个函数的文档(例如 go doc fmt.Println)。
  • go tool pprof性能分析工具。配合代码生成的 CPU/Heap profile,可以定位内存泄漏或 CPU 耗时函数。
  • go tool nm: 查看二进制文件里的符号表。

跨平台编译 (Cross-Compilation)

Go 最强大的特性之一就是简单的跨平台构建。你只需要在 go build 前设置环境变量即可。

  • 编译为 Linux 可执行文件 (在 Mac/Windows 上):
    1
    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app_linux
  • 编译为 Windows 可执行文件 (在 Mac/Linux 上):
    1
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o app.exe

进阶辅助指令 (Generators)

  • go generate ./...: 扫描代码中的 //go:generate 注释并执行后面的命令。常用于自动生成代码(如 stringerprotobufmockgen)。
  • go clean -modcache: 清理下载的依赖包缓存(当依赖包损坏或想节省磁盘空间时使用)。