用途:提供 Go 1.21+ 的惯用(idiomatic)编码规范与工程实践参考,帮助编写可维护的 Go 代码。
主要能力:
- 项目布局:标准项目与微服务目录结构(cmd、internal、pkg、api、configs、migrations)。
- 编码准则:接受接口、返回结构体;错误处理与包装(fmt.Errorf 配合 %w、自定义错误类型);context 传播。
- 测试:表驱动测试、测试辅助函数与 t.Cleanup、golden 文件对比、基准测试与并行基准。
- 配置:函数式选项模式、环境变量加载(go-envconfig)、slog 结构化日志。
- 依赖注入:基于接口的 DI 与内存实现示例。
- 性能:预分配切片、strings.Builder、sync.Pool 复用缓冲、零拷贝技巧。
- 工程化:Makefile 约定、构建标签、Go 模块与 workspace 命令、Docker 多阶段构建。
使用方式:作为技能/参考文档查阅,按需套用其中的模式与命令,例如 go mod init、go mod tidy、go test -v -race ./...、go vet ./...、staticcheck ./...、golangci-lint run。
适用场景:Go 服务与库的开发、代码评审、测试与性能优化、项目脚手架搭建。
限制:要求 Go 1.21+;部分示例依赖第三方库(如 go-envconfig);资料未提供安装步骤、收费与平台信息,暂未提供。