Go 项目工程结构最佳实践

好的项目结构能让代码更易理解、易维护、易扩展。Go 社区有一套被广泛认可的标准布局。 1. 标准项目布局 参考:golang-standards/project-layout myproject/ ├── cmd/ # 主程序入口 │ ├── server/ │ │ └── main.go # 服务端入口 │ └── cli/ │ └── main.go # 命令行工具入口 ├── internal/ # 私有代码(不可被外部导入) │ ├── handler/ │ ├── service/ │ └── repository/ ├── pkg/ # 公共库(可被外部导入) │ ├── util/ │ └── validator/ ├── api/ # API 定义(OpenAPI/Swagger) │ └── openapi.yaml ├── web/ # Web 静态资源 │ ├── static/ │ └── templates/ ├── configs/ # 配置文件 │ ├── config.yaml │ └── config.prod.yaml ├── scripts/ # 脚本(构建、部署等) │ ├── build.sh │ └── deploy.sh ├── test/ # 额外的测试数据 │ └── fixtures/ ├── docs/ # 文档 │ └── API.md ├── go.mod ├── go.sum ├── Makefile # 构建脚本 ├── Dockerfile └── README.md 2. 核心目录详解 2.1 cmd/ 存放主程序入口,每个子目录对应一个可执行文件。 ...

2025-10-29 · 3 min · 585 words · Hank