前言
最近老总让我一个iOS的和一个后台的面试安卓开发的人(ps:我们团队没有安卓开发人员),由于之前没有什么面试别人的经验,所有问的问题也都很简单,没有什么有深度的问题,所以面完后都觉得差不多,然后就再交给老总去面,哈哈,感觉我们的用处不大。我们老总经常会问的一个问题就是:你有没有做过点赞功能,如果让你做你需要向后台传什么数据?就是这个看似简单的问题,让我们老总决定了一个人的去留。下面来详细说一说吧:
问题提出
假如给你一篇文章,你觉得不错,想要点赞,这时候如果有100个赞,那么你点击这个点赞按钮之后,都做了什么,需要向后台传什么数据?
在我看来,这个问题其实并不难,但是不知道为什么很多人都是把点赞数+1,然后传给后台,这是有很大问题的,假如用户量很庞大,在一个时间点有很多人同时点赞,那么到底赞了几个呢?所以对于这样回答的人,都被pass了,😆😆😆。
问题分析
关于点赞功能,在我看来有以下几个步骤需要做,如果说的不对,还望指正:
1、UI界面的变化:点赞按钮状态改变(如:变红),点赞数量+1
2、接口调用:调用后台点赞接口,传入参数:文章id,用户id,如果有取消赞功能可能还需要传入是点赞还是取消赞的标识
3、接口回调:接口返回成功之后,再次请求接口获取点赞数量,防止两人同时点赞时数量不一致
为什么要先改变按钮状态,再去请求接口呢,这里主要是为用户体验做考虑,让用户可以快速的体验点赞功能。
问题升级
关于点赞,我还有另一个需求:如果我需要在没网的情况下,也能过点赞,这时候该怎么处理?(关于这个问题,微信朋友圈做的是非常好的,我试过把网络关闭后,再去点赞和评论,发现都能够成功的)
解决方法:在没网时把需要调用的接口及参数保存到本地,监测网络状态,在有网时,在后台重新请求这个接口。
最后
关于点赞功能,我认为也就这些需要注意的地方了,如果有不对的地方,还望指正。
我是一名iOS程序猿,热爱编程,乐于分享,欢迎大家一起交流学习!
网友评论