抖音和微博:两种不一样的@人方案

基本上知名的app都有一个功能:@人。虽然功能很广泛,但以抖音和微博为主,这两家实现@人背后的产品逻辑是不同的。微信

 

今天咱们就来阐述一下@人背后的产品逻辑。app

 

首先,咱们先从操做上入手,介绍下二者的区别:工具

 

抖音3d

打开抖音,若是你手动输入了@xxx,你会发现xxx并无高亮变成可点态,即便xxx这个用户是真的存在,而只有从@人列表选出的用户(@yyy)才会被高亮。blog

且当你想删除@yyy中一个字符时你会发现并作不到,要删只能把"@yyy"所有删除,但@xxx是能够逐字删除的。开发

这时你复制"@xxx @yyy"后粘贴,你会发现粘贴出来的@yyy也并不能高亮。产品

 

微博微博

 

打开微博,咱们发现手动输入了@xxx是会高亮的(与抖音不一样),从@人列表选的@yyy是会高亮的(与抖音相同)。后台

当我想删除@xxx或@yyy中的一次字符时,是支持柱子删除的。原理

这时咱们复制"@xxx @yyy"后粘贴,会发现只要是@后的文字,均可以高亮。

 

接着,咱们分析下 抖音 和 微博 为什么在@人这项功能上有如此差别,这种差别背后的原理是什么,以及为什么抖音和微博要采用不一样的实现方式?

 

抖音

不难发现抖音的@人只能从@人列表里选,没法手动输入@xxx。那么从@人列表选的用户和手动输入的@xxx有什么区别呢?为什么看起来都是@xxx,可是只有从@人列表选的用户才会高亮可点击跳转到用户详情页呢?

那必定是从@人列表选出的@xxx背后隐藏着咱们不知道的信息,实际上从@人列表选出的@xxx,背后隐藏着xxx的id,也就是说@xxx和这个id是成对出现的。这就解释了上面的几个问题:

(1)为什么我手动输入的@xxx不高亮不能点击跳转到用户详情页?

答:由于手动输入的@xxx背后没有对应的id。

(2)为什么我复制别人可高亮可点击的@xxx到我本身发表时就不能高亮了?

答:由于你复制的知识复制了@xxx的文本,并无复制@xxx背后对应的id。

(3)为什么我不能修改我从@人面板选出的人名,删的时候必定要把@xxx所有删掉?

答:由于@xxx和id是配套的,你不能把@xxx修改成@xx,由于@xx和id不配套。

(4)这里说的id有什么用?

答:实际经过@xxx跳转到xxx的我的详情页时,是经过id来跳转的。既然@xxx背后隐藏着对应的id,那么在xxx更名为yyy后,由于这个用户对应的id是不变的,因此能够实现精准@,也就是:

用户A一个月前@xxx,但xxx在今天更名了,那么用户B、C、D拉到A一个月前发的@xxx时的内容能够被后台改成对应的@yyy。

 

微博

那微博又是怎么作的呢?微博的方案就是剔除了@xxx背后所对应的id,这样只要用户输入@xxx,那么xxx就必定是生效的,那么问题来了,你不是说id是跳转的关键吗,微博没有id我看也是能够跳转到详情页的啊,它又是怎么作的呢?

实际上你在抖音和微博分别点击@xxx,会发现一个很明显的不一样:抖音能够当即跳到xxx的详情页,但微博须要加载1-2s。微博加载1-2s的这个过程就是经过用户名去获取用户id的过程,获取完用户的id而后再拿id跳到xxx的详情页。

 

那么这时咱们就要新的疑问了,若是让咱们去搭建一个@人的需求,抖音的方案和微博的方案咱们应该选哪一个呢?

首先咱们用一个表格来对比下这两个方案的异同点:

 

最后咱们来总结一下:

我我的是倾向于 不带id的@人方案,我认为文本才是最简单最高效的沟通工具,既然我看到别人已经@xxx,那么我复制他发的@xxx,就是想一样实现@xxx的效果。不过具体产品方案要按产品的背景了,抖音选择 带id的@人方案也必定是有它的缘由的。

 

#专栏做家#

聊哥,腾讯工程师,微信公众号:"和产品经理聊技术",人人都是产品经理专栏做家。一名致力于下降开发和产品隔阂的同窗,关注我,一块儿作酷炫互联网人。