最近闹得沸沸扬扬的是内涵段子被下架,无数网友表示很舍不得,紧接着抖音、快手都在做整改。我当时看到这个新闻的时候不是看内容如何,而是凭借着职业习惯,第一眼就想到了为啥它们这些app可以快速响应国家政策,做出调整?技术上是如何实现的?下面我凭自己的开发经验大概的讲一下如果是我做我会怎么做,思路如下:
(一)内涵段子被下架
从技术层面来讲,这个是很简单的,把所有的app从应用市场下架,然后把后台接口全部封闭,原来已经安装的app界面上是一片空白,因为后台接口没了,所以以前外链分享出去的url也是全部打不开的。所以这个是很好处理的。
一般来讲,用户量如此庞大的项目,后台接口是很规范的,比如restful风格的接口,一般会返回类似于这样的接口:
{ "errorCode": 1, "errorMsg": "请求失败", "data": { "message": "Problems parsing JSON" } }
由于后台接口没有返回数据了,界面上自然都是空白,你看内涵段子上面的所有的列表的item都显示的是同一个View,就是下面的这个声明。其实只要把所有的item替换成为本地的图片就可以了。(个人理解,如有错误,欢迎指出)
(二)关于抖音、快手等同类型app禁用评论功能、关闭直播功能、上线防沉迷系统等的技术层面解读
一个用户量如此庞大的app,想必比会用到了一些架构设计,比如插件化、热更新等技术,后台这边给出的接口应该是给每个接口都预留有一个开关,防止意外情况发生时刻有快速关闭接口。
比如说看视频是一个模块,直播是一个模块,评论是一个模块,点赞是一个模块,分享也是一个模块,拍视频是一个模块。整个app是由多个模块组合而成的,整体app通过插件化或者组件化开发的思想,把这些不同的模块加载进来就形成了一个完整的app。很多功能模块都是可以由后台配置的,就连这个跳转路径也是可以控制的。
我在群里看到美团大佬 大白 的一段话很经典,借此引用一下,感觉很有意义:
比如我的直播是一个本地路由,我服务器下发一个web路由,立马就被定向到了h5,本地的直播页面就被干掉了,等本地版本更新后 再慢慢上用户更新
还有一个问题,app的评论功能突然被禁用?怎么快速做到这个?
假如是原生开发的情况下!
我第一感觉可能是用的热更新,就是后台对这一部分的接口返回的是空白的,或者把评论开关关闭,前台页面显示的空白,并且点击评论那里既不能编辑,也不能点击,这样才做到的评论彻底被禁用,最后把评论功能的代码去掉,推送一个热更新包,下次打开app的时候就不能评论了。假如是h5页面,那就由负责写前端页面的哥们写页面逻辑,相对来说,这种变化比较好处理,只需要根据对应的接口更改页面就好了,对用户的app无需推送热更新包。
至于上线防沉迷系统,这就是新增了一个模块而已,属于正常开发中的新增功能,把它单独做成一个模块,然后通过插件化思想,加载进去,然后模块里面会做一些统计数据分析,确保真正做到防沉迷。这个没什么多说的。做好之后给用户推送新版本,或者app市场上架全新版本。
个人能力有限,暂且只能解读这么多,如有错误和不足之处,也欢迎各位大佬指正和补充。感谢大家的支持!