新浪微博的@功能缺陷与改进建议

新浪微博从内测至今已经有好几年了,但是时至今日其“@”的提及功能仍然存在一个重大的缺陷。那就是提及功能使用的是“@+昵称”的方式而不是“@+ID”方式。这两者的区别就是前者不具备唯一性而后者具有唯一性。其造成的问题就是当用户修改了昵称后,原来所有使用@+昵称的链接都将失效,如果此时有人使用了你原来的昵称那么就成了@别人了。

通过查看新浪微博页面的源代码可以看到,@dudo博客的超级链接目标页是

<a href="/n/dudo博客" usercard="name=dudo博客">@dudo博客</a>

这个链接的意思就是查看昵称为dudo博客的用户。如上所提到的,昵称是多变的,不具备唯一性,因为这个链接找到的并不是固定的某个人,不同的时期找到不同的人。其实改进建议很简单,那就是使用ID或者微号。ID是用户自己设定的,并且不允许有重复,比如dudo博客的ID是dudoblog,那么可以将微博内容中@duod博客的链接直接定向到http://weibo.com/dudoblog,这样即使我改了自己的昵称,别人在@我的时候我也一样能收到通知。如果我改了昵称怎么办呢?这也很简单,我改了昵称之后的时间再使用@dudo博客就会指向另一个人。这两个的区别就在于我修改昵称之前所有@dudo博客在我修改昵称之后仍然指向我,我修改昵称之后的@dudo博客再指向的是另一个人。使用微号也是同样的道理。

使用上面的方法会在保存数据时多查询一次数据库,可能会浪费一点时间,但是微不足道。

我们不清楚新浪微博一直保留现在这种@机制的目的是什么,但是这明显有相当大的缺陷,希望此后会有所改进。