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 ```