工程目录结构设计

Jun 28, 2022·
1ch0
· 2 min read

目录结构示例

项目目录结构

├── 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 项目介绍