工程目录结构设计
Jun 28, 2022··
2 min read
1ch0
目录结构示例
项目目录结构
├── api
│ ├── v1
│ │ ├── configCenter
│ │ └── swagger
├── build
│ ├── ci
│ ├── docker
│ └── package
├── CHANGELOG
├── cmd
├── configs
├── deployments
│ ├── templates
│ └── ...
├── docs
│ ├── devel
│ └── guide
├── examples
├── githooks
├── go.mod
├── go.sum
├── internal
│ ├── apiserver
│ │ ├── api
│ │ │ └── v1
│ │ ├── service
│ │ └── mongodb
│ ├── pkg
│ │ ├── code
│ │ ├── logger
│ │ ├── middleware
│ │ └── setting
│ │ └── util
├── pkg
│ └── ...
├── scripts
│ ├── lib
│ └── make-rules
├── test
│ ├── testdata
│ └── ...
├── third_party
├── Makefile
└── README.md
目录结构说明
api 存放对外提供的 API 接口定义文件
build 存放与持续集成相关的文件
- ci 存放 CI 的配置文件和脚本
- docker 存放 dockerfile 文件
- package 存放系统的包配置和脚本
CHANGELOG 存放更新记录,使用 git-chglog 自动生成
cmd 存放项目中组件 main 函数
configs 存放配置文件模板或默认配置
deployments 存放容器编排部署配置和模板
- templates
docs 存放设计、开发、用户文档
- devel 设计、开发文档
- guide 用户文档
- images 存放图片
examples 存放 app 或公共包的示例代码
githooks Git Hooks,存放使用到的 git hook 文件(/hooks/.git/hooks/)
internal 存放私有应用和库代码
apiserver 存放应用代码
- api 存放内部 api 代码
- service 存放业务处理代码
- mongodb 存放与数据库交互的代码,Create、Update、Delete、Get、List
pkg 存放项目内可共享,项目外不共享的包
- code 状态码
- logger 日志处理
- middleware HTTP 处理链
- setting 读取配置
- util 定义公共函数、工具
pkg 存放可以被外部应用使用的代码库
scripts 存放脚本文件
- lib 存放 shell 脚本
- make-rules 存放 makefile 文件,实现 Makefile 文件中功能
test 存放其他外部测试相关内容
- testdata 存放测试数据
third_party 存放第三方工具
Makefile 存放重复性命令,如单元测试 go test 、编译 build,镜像打包,部署,生成API 文档(swagger)
README.md 项目介绍