在设计完我司一个短视频项目的某项功能后,自己多次回顾了逻辑和交互,确认无漏洞后和负责人过了一遍便交付给了开发去做。几个小时之后,安卓C来找我:xx,这个里面的点赞逻辑我想和你讨论一下,遂与安卓C开始了一次对于看似简单的点赞功能的探究。
安卓C:我们的点赞状态涉及到两个页面(一级页面点赞状态会保留到次级,反则也是),我用Charles调了一下微博的点赞接口,发现他们使用了长连接处理,我们后台提供的接口是http网络请求。
我:那么二者区别在哪呢?
安卓C:区别在于弱网情况下,http请求处理速度比较慢,在一级页面点赞完之后在次级页面可能不能很快传到数据说已点赞。另外,快速狂点赞的情况下,一个http请求可能还没能够相响应到,另一个又发来了,甚至可能另一个比第一个先到,可能会造成程序崩溃。
我:那么长连接的优点呢?
安卓C:长连接的好处在于,客户端在点击事件发生后在规定的时间内和服务器处于长连接状态,在这个规定的时间中你的点赞和取消点赞不会因为网速而打乱,并且客户端可以控制最后点击的和最初状态进行比对而忽略中间乱点的过程以保证程序良好运行。
我:哦哦,小小的点赞也有那么多讲究
安卓C:大公司都会针对这些细节优化,曾经脸书客户端就因这个问题产生的漏洞而下掉点赞功能。
我:好吧,又学了一课。
安卓C:那我们这个是不是也考虑这个问题呢?
我思考了一分钟说:目前这个版本的功能主要目的想快速测试市场反馈,看看用户的反应,是否对这个功能感冒,所以目前还没有必要考究这个问题。
产品设计中,看似不起眼的小问题仔细考究一下却有这么多需要思考的问题,避免异常而引发产品漏洞也是产品设计中不可忽略的一部分。
网友评论