前日,俩好友突发奇想地建议我:“不如分析一下微信朋友圈吧~”。
微信朋友圈作为日常高频使用的产品,确实有很多地方值得我们学习和分析,那么以下本人就回应俩好友的要求,下面讲讲本人对微信朋友圈的理解吧~
1、首先来了解一下微信朋友圈都有些什么功能?(微信朋友圈的功能结构)
2、其次,看看微信朋友圈是如何达到良好的操作体验?(微信朋友圈的架构模式)
(1)业务说明——Feed流的应用
朋友圈动态列表即为多个动态的集合(Feed流)以及即刻列表(按动态消息属性专门分类的一个动态列表)是由一个个动态消息(单个Feed)组合而成;
Feed:Feed流中的每一条状态或者消息都是Feed,比如朋友圈中的一条动态就是一个Feed,再比如,微博中的一条微博也是一个Feed,。
Feed流:持续更新并呈现给用户内容的信息流。如每个人的个人朋友圈是一个Feed流,同理,每个人微博关注页也是一个Feed流。
Timeline:Timeline其实是一种Feed流的类型,朋友圈、微博都是Timeline类型的Feed流。
关注页Timeline:展示其他人Feed消息的页面,比如朋友圈首页、微博的首页等。
个人页Timeline:展示自己发送过的Feed消息的页面,比如个人朋友圈、微博的个人页等。
Push:当Producer 发出的消息到达后,服务端马上将这条消息投递给 Consumer。
Pull:当服务端收到这条消息后什么也不做,只是等着Consumer 主动到自己这里来读,即 Consumer 这里有一个“拉取”的动作(即为你来我就服务)。
(2)架构分析——Feed系统
(3)存储分析——数据结构
动态列表(Feed流)与单个动态(Feed)的数据存储关联分析如下
(4)消息传达——推拉分析
在Feed流架构下,微信朋友圈结合了Push和Push的模式。而根据微信朋友圈的业务场景对不同的功能采用不同的异步信息交换方式。
Push的应用:
Push可利于实时性的消息传达,如关注朋友圈的动态消息通知,关注页动态消息列表更新;
Pull的应用:
Pull可缓解消息服务器存储的压力,如访问个人主页动态列表更新(列表权限更改了,延迟读取更新);
3、再来,看看微信朋友圈如何为用户隐私做控制(多维权限规则分析)
(1)交集权限或优先权限
即读取多个权限规则,取其交集权限,或多个权限规则,若无交集,则取优先权限。
场景1:查询“个人主页的朋友圈”,展示的动态仅与该微信号发布的动态相关
场景2:查询“关注主页的朋友圈”,展示的动态集合了该微信号以及关联的微信号(好友们)发布的动态
(2)非时效标签权限
标签分组是动态,可随时增减好友,而一条动态发布时设置的标签权限,确仅仅是当时记录标签下的好友名单,一旦生成既定权限,并不会随着时间发展权限变化。
举个例子:比如说你发了一张关于体重的记录照,选择“队友”标签发了出去,此时“队友”标签下有刘亦菲和贾静雯两个人,那么刘亦菲和贾静雯都能刷到你的记录照。
这时呢,你又把高圆圆加到“队友”标签下,高圆圆是不会刷到你发的这张记录照的,因为该记录当时权限中仅记录了刘亦菲和贾静雯可见。
同理,你觉得你已经完成目标了,不需要这个标签了,然后把所有人从“队友”标签里移了出去并删除这个标签,但是刘亦菲和贾静雯依然可以看到你发的这个记录照的,因为该记录的权限记录了刘亦菲和贾静雯可见,并不会改写或删除。
也就是说通过标签选择的可见范围,都是具体到标签下的人的。在你发布的那一瞬间,单个动态的权限就都定下来了。所以无论后面怎么调整标签下的人,都不会影响这条已经发出去的动态的权限了。
4、最后,让我们小结本文(感谢浏览点赞支持)
本文是对微信朋友圈的功能和数据进行浅层的分析,若存在不足之处,可在下方留言评论交流哈~
网友评论