磨刀不误砍柴工 - 改造思路
文档对应视频课程中4.2章节,请小伙伴们对应学习。
和直接实现功能不一样,因为改造的是服务器端的功能,所以尽量不要增加前端的工作量,也不能改变现在的业务逻辑。
整体改造思路
因为系统是前后端分离的,最上面是web层,这里是通过bee run 创建fyouku项目实现的。这个不是关注的重点。系统调用的是左下角,PHP版API接口,用127.0.0.1:8005访问。下面要做的是右下角部分,GO语言开发API接口来替换掉PHP版本的接口,项目为fyoukuApi,访问地址是127.0.0.1:8099。当全部改造完所有的功能以后,直接用右下角GO实现的接口服务替换掉左下角PHP版的服务就可以了。
单个接口改造思路
- 第一步,整理原有接口的请求参数和返回数据信息。这两部分只要有了改变前端就要跟着修改,所以尽量不要改变。
- 第二步,分析原有的代码了解业务逻辑,不能改变业务逻辑。
- 第三步,在不改变请求参数和返回数据信息的前提下,实现功能
数据库
- advert 广告表
- aliyun_video 阿里云转码日志表
- barrage 弹幕表
- channel 频道表
- channel_region 频道地区表
- channel_type 频道类型表
- comment 评论表
- message 消息表
- message_user 消息和用户关联表(发送给哪个用户)
- user 用户表
- video 视频主表
- video_episodes 视频剧集表
项目包含的功能
- 用户相关的功能,有用户注册、用户登录,这个是最先要实现的功能,因为很多功能比如发送弹幕、发布评论都是建立在用户登录的基础上的。另外用户相关的还有 我发布的视频、我的消息功能、系统批量发送消息功能。
- 动漫频道页,包含顶部推广广告、日漫推荐、国漫推荐、少女推荐、动漫排行。
- 视频列表页,包含两部分,第一部分视频属性信息的获取,第二部分视频列表的获取以及下拉翻页获取视频列表
- 排行榜,各个榜单的排行,动漫排行和少女类型排行。
- 视频播放页,视频网站最核心的功能,视频播放功能咱们使用阿里云点播播放器SDK;剧集列表获取;视频网站比较流行的弹幕功能,讲解弹幕实现的原理、前后端弹幕功能的实现、发送弹幕、弹幕列表功能;相关推荐功能,这里获取的逻辑和频道页获取的逻辑相同;评论功能,也是视频网站的核心功能,有发布评论功能和评论列表功能。
- 上传视频功能, 分为两个模式来讲,本节先按照第一种模式,上传视频文件到本地服务器的模式来完成功能。(同学可以跟着老师开发) 另外一种模式,整合阿里云上传视频SDK,使用阿里云服务。上传完视频使用阿里云视频ID来播放,另外需要视频转码,所有要提供回调函数保存阿里云回调的信息。(因为这部分需要两个条件,第一先要有线上服务器,可以让阿里云访问到。第二需要开通阿里云的点播服务,满足这两部分的可以跟着我实现功能。不满足的也可以把这部分作为参考,增加面试和工作中经验,毕竟企业大都是按照这种模式实现的)
这些不是优酷网所有的功能,但是已经涵盖了核心的和容易出现瓶颈的功能,优酷网其它的功能大都可以按照这些功能来实现,只是业务逻辑不同而已。