从内涵段子被下架、快手禁用评论探讨其背后的技术细节

最近闹得沸沸扬扬的是内涵段子被下架,无数网友表示很舍不得,紧接着抖音、快手都在做整改。我当时看到这个新闻的时候不是看内容如何,而是凭借着职业习惯,第一眼就想到了为啥它们这些app可以快速响应国家政策,做出调整?技术上是如何实现的?下面我凭自己的开发经验大概的讲一下如果是我做我会怎么做,思路如下:

写这篇文章的目的:不是为了凑数写的,而是从技术层面去分析大型app可能会怎么做,我们不光要看一个事件,还要要看背后的技术实现。假如我们自己的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市场上架全新版本。


个人能力有限,暂且只能解读这么多,如有错误和不足之处,也欢迎各位大佬指正和补充。感谢大家的支持!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏原创

Android服务开发经验——优雅地活着 by个推推送

具体来说,就是要做到两点: 1. 尽可能运行 2. 尽可能省电 看似寻常的道理,实现起来还真不容易,下面一个个来看: 尽可能运行 Android系统会根据当前资...

40270
来自专栏美团技术团队

互联网企业安全之端口监控

背景 外网端口监控系统是整个安全体系中非常重要的一环,它就像眼睛一样,时刻监控外网端口开放情况,并且在发现高危端口时能够及时提醒安全、运维人员做出相应处理。 对...

589150
来自专栏北京马哥教育

sqlserver、Mysql、Oracle三种数据库的优缺点总结

? 一、sqlserver 优点: 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等; 为...

49560
来自专栏Java技术分享

谈谈MVC模式

1. 如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论。 MVC模式就是架构模式的一...

22070
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-24期末结算

为进行获利分析结算生产订单及项目 在此活动中,为物料S240-1和项目执行工厂的期末财务会计核算。 成本和收入只是暂时地收集在订单和项目中,在期末处理的时候这些...

43180
来自专栏Debian社区

Chrome浏览器中新增反恶意软件广告功能

谷歌宣布在Chrome浏览器中新增三个安全功能,阻止网站在未经用户或网站所有人同意的情况下悄悄将用户重定向至新的网址。

13220
来自专栏Seebug漏洞平台

Sebug 大牛支招之我是如何在Sebug中杀入前10的?

大家好我是koshell,ID:k0sh1, 在之前的文章中我分享了在web漏洞挖掘中的一些小技巧,这里要补充一下。 注入其实只是众多web入侵手段中的一种,脱...

39370
来自专栏安恒信息

运维安全中的“福尔摩斯”

引 言 随着互联网技术的发展,信息的交互越来越频繁,随之而来信息的安全、运维操作的合规性等等问题越来越多,其对于企业内部管理来说要求越来越高。2015年某某网...

38970
来自专栏个人分享

一次极限项目管理,设计,开发,联调与测试

     什么是All In? 是你不知道全力做这件事情会得到什么。但你只想把它做好的感觉。

15710
来自专栏IT派

谈谈 MVC 模式

如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论。

11900

扫码关注云+社区

领取腾讯云代金券