这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。
经过这段时间的学习,我们终于进入了抖音项目的开发阶段,小组内有几位大佬有比较多的开发经验,经过小组讨论,我们最终把项目结构确定为以下结构:
-
docs
- postman-export:postman接口测试文件导出
- sql:数据库初始化sql和运维sql
-
src
-
api
- controller:控制器
- router.go:路由器控制
-
cache
- user_id:通过用户id缓存用户数据
- user_uname_pwd:通过用户名密码缓存用户数据
-
dao:数据访问层,与数据库相关的操作
-
global:全局变量
-
pkg
- errcode:统一错误码
- setting:配置文件映射
-
pojo
- entity:数据层对象,映射数据库表
- vo:视图层对象,映射接口返回对象
-
service:项目核心业务逻辑
-
util:工具类
-
config.yaml:配置文件
-
init.go:初始化加载文件
-
server.go:启动类 数据库设计为了:
-
-
dy_user表 用户表 包括id、 username、 password、 follow_count、 follower_count、 create_date、 update_date、 is_deleted这些属性
-
dy_comment 评论表 包括id、user_id、play_url、cover_url、favorite_count、comment_count、title、create_date、update_date、is_deleted这些属性
-
dy_favorite 点赞表 包括id、user_id、video_id、is_deleted等几个属性
-
dy_relation 关系表 包括id、follower_id、following_id、create_date、update_date、is_deleted等几个属性 项目用到了GO WEB的Gin框架、数据库的GORM。我们在项目中通过讨论、参考GORM以及Gin的官方文档进行项目的编写。由于我们对Java语言相对较熟悉,所以项目的结构参考了Spring项目的结构、分为service层、controller层以及dao层,其中controller层负责接收并处理前端传来的请求,service层负责与用户进行交互、处理用户的请求与行为、dao层则负责对数据库以及缓存进行处理,在设计好基础架构之后,组长将项目进行了分工,每个人负责写自己的一部分功能,然后自己测试通过后上传到团队的github项目中。