查看原文
其他

读者 | 想做个高质量视频小程序

鱼皮 程序员鱼皮 2022-08-14

给点建议

大家好,我是鱼皮。最近,我的一位大二学弟有个小想法,想搞一个视频小程序,来一起帮他出谋划策吧~

需求背景

学校有很多线下讲座,但讲座视频和相关资料并未保存,还有很多线下分享和资料也比较零碎。目的是将分享视频线上化、并将相关资料永久保存。

需求分析

基于这个背景,小程序需要有以下功能:

  1. 小程序专注视频,均由本校师生上传。

  2. 上传内容多种多样,包括讲座、考试经验、职场、研究、日常分享等。

  3. 可以为每个视频上传相关资料,比如 PPT 文件、网盘链接等。

  4. 视频需审核才可发布。

看上去是一个比较典型的视频小程序需求了,功能也比较常见,貌似 “不难”。

但是这位学弟目前只有 C 语言的基础、并且正在学习 JavaScript、刚刚跟着微信官方文档学习小程序,所以不知道怎么去做这个项目,下面一起来看看他的疑问,我会给出一些自己的解答和建议。

答疑

问题 1

做一个上传视频的小程序和论坛上传文字的小程序技术难度差别大吗?具体有哪些差别?

回答

先来看看差别:

  1. 上传方式:上传视频也是上传文件的一种,需要开发文件上传功能;而只有文本信息的话,直接提交到后台就行了。

  2. 文件体积:显然,视频文件的体积太大了,会占用大量的服务器磁盘空间来进行存储;而文本信息直接保存到数据库就行。

  3. 加载:视频文件体积大,用户看视频时也需要加载更多的资源。因此,视频网站通常会采用各种各样的方式优化用户加载 / 观看视频的体验,比如视频转码、流媒体等。

  4. 流量:视频文件体积大,消耗的流量、占用的带宽也更大,对个人开发者来说,是比不小的负担。

  5. 审核:显然,视频审核的成本要比图文审核要高的多!

从以上这些点可以看出,虽然都是上传,但上传视频会比单纯地传文字要 麻烦费钱

至于实现难度,如果都自己来开发、管理文件啥的,那上传视频可以说是非常非常非常复杂的,做得好写在简历上都是亮点。但如果用现成的云服务厂商(BAT 等)提供的文件存储、流媒体、视频审核服务,那就没什么难度了,但价格可不是学生能承受得起的!

问题 2

学长觉得我的想法靠谱吗?我现在还不了解技术难度,不知道能不能做得了?项目从现在开始,到明年 3 月份结束(大概  5 个月),我害怕这个难度过大。

回答

视频小程序是一个很常见的项目,想法靠谱。

项目难度不大,在做之前建议先看一些同类的小程序或网站,作为参考或最终目标。只要学了相关技术(前端 + 后端)肯定要不了多久就能做出 Demo(小样)的。

参考现有应用

问题 3

如果能做的话,我负责前端开发,那我是不是学完微信小程序的官方文档之后应该学一些框架(目前只是听说过 Vue 这类的框架,还不理解框架)?学长能给我一些针对这个项目的学习路线吗?

回答

其实我建议先学前端,因为小程序和前端开发的语法和模式是类似的。而且最好学完 Vue 框架之后再去学小程序,因为学完前端三件套后虽然可以去做小程序,但开发效率是很低的,现在的小程序的主流开发方式都是用框架(甚至是可视化拖拽 —— 低代码),很多框架的语法都是基于或者神似 Vue 的,小程序开发时也可以用前端开发常用的组件库和类库。

腾讯的 Omi 框架

所以先学好前端,再去开发小程序,会顺滑得多。

如果担心时间不够,甚至可以先把目标从 “视频小程序” 改成 “视频网站”。一方面,现在各种大前端、跨端框架层出不穷,写一套代码就能自动转换为小程序和 APP 了;另一方面,无论是小程序、网站还是 APP,他们都可以共用同一套后端,所以区别不大。

最后,给出针对这个项目可能要用到的技术和学习路线,具体的目标和任务拆解需要自己来定~

开发路线

前端

  1. HTML、CSS、JS 基础三件套

  2. Vue 开发框架(学 1 个月左右)

  3. 一个移动端组件库的使用,推荐 Vant 或 Ant Design Vue(可以直接用组件库做个 web 项目)

  4. 小程序跨端开发框架,比如 Uniapp、Omi 等(边学边做最终的视频小程序)

后端

  • 数据库基础(要学会设计表,学 7 天左右)

  • 一个开发框架。如果以后想从事前端方面工作,可以使用腾讯小程序云开发,是一个现成的后端服务,比较方便;否则就自己学习 Node.js 开发框架(如 Egg、Koa)或 Java 开发框架(SpringBoot)。(学 1 个月左右)

  • 对象存储 SDK 的使用(比如腾讯云 COS、七牛云等,直接看官方文档学会如何接入、上传和管理文件就行了,应用到最终的项目中)

  • CDN 内容分发网络(优化视频的加载速度)

  • 有时间就去了解下流媒体,或者使用现成的云服务

其他

  • Linux 系统(部署后端项目要用,会敲命令就行)

  • Git 版本控制系统(了解常用概念,会通过界面提交下载代码就行)



以上就是本期分享,我是鱼皮,求个 点赞 + 在看 ,这将是我持续创作的最大动力,谢谢 🙏

往期推荐

鱼皮爆肝 Python 学习路线

读者 | 做了个博客,看看咋样

精品 IDEA 插件大汇总!值得收藏

怒肝 Linux 学习路线,这回不难!

为什么我总写 Bug ?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存