RT,最近为实习远程面试,自己没有其它可以拿出来,只有一个小项目可说,其中提了实现了点赞功能,面试官就问了我实现方式。
我的实现方式用 redis 为每个回复存一个 likeit:reply:${reply_id} 的 set,这个 set 中保存点赞了这个回复的账户的 id,所以已经登录的用户在从后台拉取回复的列表的过程中,服务层会在这个过程中对列表中的每个 reply 获取 reply_id,然后向 redis 查询当前用户的 id 是否在集中以及这个回复被赞的数量,保存到这个 reply 实例的一个 @
transient 成员 LikeIt 类的 likeit 里。。
最后前端(前端拿到的当然是 json )就根据这个确定用户有没有点赞过和当前回帖的点赞数。。
然后面试官就问了下有没有学习过当点赞数可能破万的情况下,有没有更好的方案。如果要提供根据点赞数从高到低展示回复要怎么做。然而我压根没想过(所以说没有深入思考的东西最好还是不要放上去。但真的没东西可放了),就很尴尬。
所以来 V 站 请教一下,点赞功能主流的实现思路是什么样的?在点赞数可能破万,需要按点赞数进行排序这两种情况下呢?
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/652870
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.