大项目日记(1)|青训营笔记

55 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

一点点牢骚写在文章前,本以为自行组队会比官方组队靠谱些,结果临到大项目确认发现小队六个人四个没有确认不参加大项目,一个联系不上,好消息:成功晋级组长,坏消息大项目瞬间变单刷

😅

因为是转码选手,所以之前一直是停留在语法学习和数据结构算法,这次大项目还是自己第一次从分析需求到搭建到代码实现的项目过程

1. 目前收获

  1. 学会了使用gorm框架,相较于之前学习的java + JDBC,golang + gorm极大地降低了sql的难度
  2. gin框架和Hertz框架的学习,对于项目如何构建与分层有了更加清晰的了解
  3. Redis的简单入门,使用Redis极大地提高了速度,但现在还仅仅停留在入门与实现上
  4. JWT鉴权中间件的实现
  5. TOML来实现MySQL,Redis的信息配置

2. 踩雷记录

1. Grom的自动迁移AutoMigrate:结构体中的字段命名首字母必须大写,否则无法实现自动迁移
2. ffmpeg的使用:调试了半天也无法实现截图功能,后经查证发现, ffmpeg.exe文件必须置于Gopath/bin下

3. 项目结构设计

项目主要分为以下几层

  1. routers路由层:负责POST/GET路由的分发
  2. JWT层:实现加密以及Token的生成与解码
  3. controller层:对JSON进行解析,获得参数
  4. 根据controller层:解析的参数,具体业务逻辑
  5. models层:进行CRUD

image.png

4. 项目安全措施

  1. 使用sha1进行密码加密
  2. SQL注入:使用Gorm进行操作,避免注入
  3. 使用 validate 来对业务请求参数进行校验

5. 当前进度

由于是单兵作战,目前项目实现部分并不是很多,已经实现了以下接口

5.1 基础接口

  1. 视频流接口
  2. 用户注册
  3. 用户登录
  4. 用户信息
  5. 视频投稿
  6. 发布列表

5.2 互动接口

  1. 赞操作

5.3 社交接口

  1. 关注操作
  2. 粉丝列表