抖音项目笔记 | 青训营笔记

131 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。

a50f4bfbfbedab64034ff52fb97cb8c379310b55b080.webp 经过这段时间的学习,我们终于进入了抖音项目的开发阶段,小组内有几位大佬有比较多的开发经验,经过小组讨论,我们最终把项目结构确定为以下结构:

  • 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项目中。