go项目分层设计

go项目分层设计

May 8, 2024
Go

单系统 Project Layout 介绍 #


├── api                 (API)
│   └── v1              (版本)
├── service             (业务层)
├── model               (结构体层)
├── dao                 (数据库操作)
├── middleware          (中间件)
├── config              (全局配置)
├── boot                (初始组件)
├── router              (路由控制)
├── plugin              (组件具体实现)
├── utils               (工具)
├── script              (脚本)
├── docs                (文档)
├── public              (静态文件)
├── log                 (日志)
├── main.go             (入口)
├── go.mod              (项目依赖包版本)
├── go.sum              (已下载的所有依赖版本)
├── Dockerfile          (docker部署文件)
└── README.md           (项目说明)

大仓微服务 project layout #

├── api                                         //所有proto文件定义,外部引用
│   └── user
│       ├── user.pb.go
│       ├── user.pb.validate.go
│       ├── user.proto
│       ├── user_error.pb.go
│       ├── user_error.proto
│       ├── user_error_errors.pb.go
│       ├── user_grpc.pb.go
│       └── user_http.pb.go
├── app                                         //大仓多微服务
│   └── user                                    //单服务
│       ├── Makefile                            //make指令
│       ├── README.md                           //项目说明
│       ├── cmd                                 //初始配置、启动
│       ├── configs                             //配置文件
│       ├── scripts                             //脚本
│       └── internal                            //内部业务逻辑
│           ├── biz                             //模型定义、关联接口定义
│           ├── conf                            //配置实例
│           ├── data                            //数据库相关连接、生成实例
│           ├── server                          //http、grpc配置、服务注册
│           └── service                         //服务实现
├── third_party                                 //第三方依赖包
│   ├── errors
│   ├── google
│   └── validate
├── deploy                                      //部署
│   ├── README.md                               //部署说明
│   ├── build                                   //构建dockerfile
│   │   └── Dockerfile                          //dockerfile文件
│   ├── docker-compose                          //docker-compose部署
│   │   └── docker-compose.yaml                 //docker-compose文件
│   └── kubernetes                              //k8s部署
├── pkg                                         //公共包
│   └── utlis                                   //工具
├── Makefile                                    //Makefile指令
├── go.mod                                      //项目依赖
├── go.sum
└── README.md                                   //大仓说明