charfole
用户5113
添加快捷方式
分享
Ready2Go青训营后端结业项目答辩汇报文档
输入“/”快速插入内容
Ready2Go青训营后端结业项目答辩汇报文档
2023年2月22日创建
89
190
一、项目介绍
项目简介:
本项目基于Go语言进行开发,运用
MySQL
、Docker、Gin、
Gorm
、Viper、jwt-go、ffmpeg-go、腾讯云
对象存储
、
Air
等工具和库,实现了抖声(简易版抖音)的所有功能,其中包括三类接口:基础接口(视频Feed流获取、视频投稿、个人主页)、互动接口(喜欢功能与评论功能)、社交接口(关注列表、粉丝列表、好友列表、聊天功能)。
Github地址:
https://github.com/charfole/simple-tiktok
二、项目协作与分工
2.1 项目协作方式
项目的开发通过Git与GitHub进行版本管理与同步,流程如下:
一、同步远程代码到本地仓库
1.
从项目GitHub仓库的主分支master中,拉取最新的代码到本地仓库
2.
如果拉取的代码与本地仓库有冲突,首先需要解决冲突
二、在本地开发新功能
1.
在dev分支中合并主分支代码,在dev分支上对新增功能进行开发
2.
dev分支开发测试完毕后,切换到主分支,对dev分支的代码进行合并
三、推送新功能到远程仓库并进行合并
1.
将主分支上的代码推送到当前用户的GitHub,并对主仓库的主分支发起Pull Request
2.
通过GitHub检查Pull Request,通过GitGuardian检测代码安全性,并检测当前
PR
是否与主仓库代码冲突
3.
检测完毕且无冲突,merge合并代码,新功能成功被添加到主仓库中
2.2 成员贡献
团队成员
主要贡献
简楚帆
1.
技术选型、对接对象存储服务
2.
实现App中的基础接口(视频功能、用户功能)与互动接口(点赞功能、评论功能)
3.
对App中社交接口部分的功能进行测试与
Code Review
曾少游
1.
项目部署、协作开发方式调研
2.
实现App中的社交接口(关注功能、粉丝功能、好友功能、聊天功能)
3.
对App中基础接口、互动接口部分的功能进行测试与
Code Review
三、项目实现
3.1 场景分析与技术选型
3.1.1 场景分析
为保证抖声在不同网络场景下均可使用,需要开发服务端并部署在线上的服务中,因此我们租用了阿里云服务器对服务进行部署。对于服务端框架的选择,我们选取了使用较为广泛且性能较优的Gin框架。同时,为了安全与便捷地持久化存储数据,项目使用了MySQL数据库,并使用Gorm框架连接与操作数据库。除此之外,我们还使用了jwt-go进行用户鉴权、使用腾讯云对象存储COS加速静态资源的读取、使用ffmpeg-go获取视频的封面帧。
3.1.2 技术选型
云服务器
:
阿里云2核2g Ubuntu 18.04轻量应用服务器
数据库:
MySQL 8.0.19(Docker容器)
Web框架:
Gin
ORM
框架:
Gorm
配置管理:
Viper
其他工具:
jwt-go(用户鉴权)、bcrypt(密码加密)、腾讯云对象存储COS(视频、视频封面、用户头像、用户背景图等静态资源存储)、ffmpeg-go(视频封面帧抽取)、Air(开发热重载)
3.2 架构设计