前言
从有无代码划分为 Go应用、项目管理、文档
Go应用由可以分为开发阶段、测试阶段、发布阶段
Go应用
开发阶段
前端
放置前端相关代码的web目录
后端
cmd 即 main启动的地方,启动入口
内部包 internal,放自己的应用和代码
可共享使用的代码放 pkg 目录
third_party 第三方工具、代码、应用 等
vendor 放自己手动写的包(未经发布的,但是项目又依赖的)
internal
pkg 放内部包共享的代码,如 internal/pkg/code 业务code代码
<app-name> 应用代码模块(intername/admin 代表后台应用,internal/web 代表前台应用),如果是单应用,可以省了<app-name>
config 放配置文件,如:mysql、redis、kafka 配置等
service 实际业务代码
测试阶段
放测试用例的test目录,希望test的覆盖率能达到 >= 90%
部署阶段
放容器编排(容器部署)的目录 deployments
放非容器部署的目录 init
项目管理
Makefile 常用于静态代码检查、单元测试、编译等......
scripts 脚本,通常放shell脚本,辅助使用
build 存放和构建相关的如(build/ci 存放ci的配置文件和脚本)
tools 存放项目支持工具
githooks 存放通过git提交时触发的一些逻辑
website 站点信息,存放网站的相关信息
assets 放置项目所依赖的一些资源,如icon
文档
api 和其相关的接口定义文件存放位置
LICENSE 版权说明
README.md 对项目的介绍、功能、快速安装、使用指引说明等......
docs 放文档,docs/devel/{zh-CN,en-US}:存放开发文档 docs/devel/{zh-CN,en-US}:存放用户使用手册,安装事项等,docs/images:存放图片
如果是开源项目,还需要CONTRIBUTING.md 告诉别人如何参与贡献代码
CHANGELOG 项目更新日志
examples 示例代码,让新同事或开发者快速上手