github.com/Go-To-Byte/DouSheng/user_center@v0.0.0-20230524130918-ad531c1a3f6a/README.md (about)

     1  # DouSheng
     2  第五届青训营项目——抖声
     3  
     4  ## 启动说明
     5  
     6  ### 1、项目配置文件
     7  需要将`etc/dousheng.toml.template`配置模板文件复制粘贴为:`etc/dousheng.toml`,并且修改为自己的配置,如:
     8  ```toml
     9  [app]
    10  name = "douyin"
    11  
    12  [app.http]
    13  host = "127.0.0.1"
    14  port = "8080"
    15  
    16  [app.grpc]
    17  host = "127.0.0.1"
    18  port = "8505"
    19  
    20  [mysql]
    21  host = "127.0.0.1"
    22  port = "3306"
    23  username = "root"
    24  password = "root"
    25  database = "dou_sheng"
    26  
    27  [log]
    28  level = "debug"
    29  dir = "logs"
    30  format = "text"
    31  to = "stdout"
    32  ```
    33  
    34  ### 2、项目启动
    35  本项目采用了Makefile工程化便于开发,电脑需要额外安装`make`指令。
    36  * windows推荐安装教程:[推荐第二种方式,别忘记配置环境变量](https://tehub.com/a/aCYp1uw0tG)
    37  * 命令行键入`make run`启动项目
    38  * 当然,不想安装make指令,也可以直接键入`go run main.go start`启动项目
    39  
    40  
    41  ## 项目结构
    42  
    43  * 目录结构概览[解读]
    44  ```text
    45  DouSheng            # 极简版抖音 APP
    46  ├── apps            # 所有服务模块[其中的每一个模块,都可单独拆分出来做成微服务]
    47  │   ├── all         # 统一管理所有模块实例的注册[驱动加载的方式]
    48  │   ├── comment     # 评论模块
    49  │   │   ├── api
    50  │   │   ├── impl
    51  │   │   └── pb
    52  │   ├── user        # 用户模块
    53  │   │   ├── api     
    54  │   │   ├── impl
    55  │   │   └── pb
    56  │   └── video       # 视频模块
    57  │       ├── api
    58  │       ├── impl
    59  │       └── pb
    60  ├── cmd             # CLI
    61  ├── common.pb       # 放置公共的protobuf文件[可抽离]
    62  ├── conf            # 项目配置对象
    63  ├── docs            # 项目相关文档
    64  ├── etc             # 项目具体配置
    65  ├── ioc             # IoC容器[可抽离]
    66  ├── protocol        # 提供协议
    67  ├── utils           # 工具包
    68  └── version         # 版本信息
    69  ```
    70  
    71  * 部分主要文件概览[解读]
    72  
    73  ```text
    74  ├── apps                            # 所有的业务模块
    75  │   ├── all                         # 驱动注册所有的IOC容器实例
    76  │   │   └── auto_register.go
    77  │   ├── user                        # 以用户模块举例
    78  │   │   ├── api                     # 提供的 API 接口
    79  │   │   │   ├── http.go             # 使用 HTTP 的方式暴露 控制层逻辑
    80  │   │   │   └── user.go             # user服务模块暴露的方法
    81  │   │   ├── app.go                  # user模块的结构体方法
    82  │   │   ├── impl                    # user.ServerService 的实现
    83  │   │   │   ├── dao.go              # 可以看作是 持久层逻辑
    84  │   │   │   ├── impl.go             # 可以看作是 业务层逻辑
    85  │   │   │   ├── user.go             # user.ServerService 接口方法的实现
    86  │   │   │   └── user_test.go        # 此模块测试用例【注:必写,一般用于测试本模块CURD的功能】
    87  │   │   ├── pb                      # 此模块的protobuf文件,里面有(接口方法、请求model、响应model、本模块model)
    88  │   │   │   └── user.proto      
    89  │   │   ├── README.md               # 本模块说明
    90  │   │   ├── user.pb.go              # 利用 protoc 生成(结构体)
    91  │   │   └── user_grpc.pb.go         # 利用 protoc 生成(接口)
    92  ├── cmd                             # 用于启动项目
    93  │   ├── root.go                     
    94  │   └── start.go                    # 启动逻辑在这
    95  ├── common                          # 定义的公共的protobuf文件,可抽离
    96  │   ├── common.pb.go
    97  │   └── pb
    98  │       └── common.proto
    99  ├── conf                            # 项目配置对象
   100  │   ├── app.go                      # 此项目的配置
   101  │   ├── config.go                   # 统一配置
   102  │   ├── config_test.go              
   103  │   ├── load.go                     # 加载所有配置
   104  │   ├── log.go                      # 日志相关配置
   105  │   └── mysql.go                    # mysql相关配置
   106  ├── etc
   107  │   ├── dousheng.toml               # 项目配置文件位置【可换成其他的,用其他库解析】[禁止上传github]
   108  │   └── dousheng.toml.template      # 配置文件模板[可上传github]
   109  ├── ioc                             # IoC容器
   110  │   ├── all.go                      # 统一所有容器
   111  │   ├── gin.go                      # Gin HTTP 服务容器
   112  │   ├── grpc.go                     # GRPC 服务容器
   113  │   └── internal.go                 # 内部服务容器
   114  ├── Makefile                        # 利用Makefile管理项目[相当于一个脚手架]
   115  ├── utils                           # 放置一些通用的工具
   116  │   └── md5.go  
   117  ```