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                                   //大仓说明