golang-standards/project-layout: https://github.com/golang-standards/project-layout
目录 | 用处 |
---|---|
/cmd | main文件存放目录,通常 /cmd/your-project-name/main.go |
/internal | 私有应用程序和库代码,不希望其他人在其应用程序或库中导入的代码。 |
/pkg | 可以共享的代码(例如/pkg/mypubliclib) |
/vendor | go mod vendor命令将为您创建/vendor目录,其他第三方库,使用 glide 工具来管理依赖 |
/api | 协议文件 |
/web | Web应用程序特定的组件:静态Web资产,服务器端模板和SPA |
/configs | 配置文件模板或默认配置。 |
/init | 系统初始化(systemd,upstart,sysv)和进程管理器/主管(runit,supervisor)配置。 |
/scripts | 用于执行各种构建,安装,分析等操作的脚本。 |
/build | 包装和持续集成。将您的云(AMI),容器(Docker),操作系统(deb,rpm,pkg)软件包配置和脚本放在/build/package目录中。 |
/deployments | IaaS,PaaS,系统和容器编排部署配置和模板(docker-compose,kubernetes / helm,mesos,terraform,bosh) |
/test | 其他外部测试应用程序和测试数据。随时根据需要构建/test目录。 |
/docs | 设计和用户文档 |
/tools | 此项目的支持工具。请注意,这些工具可以从/pkg和/internal目录导入代码。 |
/examples | 您的应用程序和/或公共库的示例。 |
/third_party | 外部帮助程序工具,分叉的代码和其他第三方工具(例如Swagger UI)。 |
/assets | 与资源库一起使用的其他资产(图像,徽标等)。 |