有一句话叫做魔鬼在于细节,从字面上能看出这句话是用来告知细节的重要性。但人的行为本身是不可控的,造成了给人用的产品理论上能走到的逻辑是无穷的,无穷多的逻辑意味着无穷多的细节,面对没有边际的细节,我们真的有必要细细处理到每一个细节吗?
先看下面的一张图,它是我们公司微信公共账号的充值页面(由于图的背景是白色的,故将word背景色修改成了绿色)
从这一张页面中,你能读到多少个可能存在的逻辑细节?先自己思考下,然后对比下面列出的,看看是你想得到的多,还是当前页面现存的多,思考哪些逻辑是必要,哪些逻辑是可有可无的?
页面中现存的处理逻辑:
1、点击10元、50元、100元、200元,清除原来的选中状态,将被点击元素置为选中状态,同时更改输入框中的值;
2、在输入框内输入数字,清除下面定值选项的选中状态。判断输入框内的值是否为空,若为空将输入框右侧的清空按钮(X)置为隐藏,立刻充值按钮置灰,并设为不可点击的状态;若不为空,清除按钮(X)置为显示,立刻充值按钮置蓝,并设为可点击状态。
3、点击输入框最右侧的清除按钮(X),清空输入框内的数字,同时将下面定值选项全部置为未选中,立刻充值按钮置灰,并设为不可点击的状态。
4、点击立即充值按钮,判断输入框内的值是否为数值且大于0,若不是给出“请输入正确金额”的提示,若是再判断是否为小数,是给出“不允许输入小数”的提示,若不是则进行提交调用后台的充值流程。
上面提到的细节你全部想到了吗?除了上面提到的细节,你是否有想到其他的细节?
列完细节,来依据细节的重要进行排序。我的排序为1>=4>3>2,依据是1和4是整个操作的主流程,3和2虽在一定提升了用户的体验,但不存在并不会对整个流程有实质性的影响,整个流程依旧可以走完。
上面也提到了3和2的加入会提升用户体验,也许有人会说了,既然加了能够提升用户体验,那我们就要加上去。对于例子中2和3细节逻辑的添加,个人觉得其实还好,因为它们的确提升了部分用户的体验,所付出的代价也并不大。注意下我这里的用词是“代价”,这是我下面想要说的,每一个细节逻辑都是用代码完成的,都是有一定的代价的。
继续拿上面逻辑为例,若是只走1和4主要流程,代码可以控制在20行左右,甚至是更少,若是再加上2和3的逻辑,代码量要加15行左右。也许有人又要说了不就是15行代码吗?没错,只是15行代码,但增加的绝对不止是15行代码那么简单,首先后期的维护成本要更高了。这里本身的逻辑并不复杂,体现并不明显,若是代码量是上千行以上,维护成本的提高就会非常明显,尤其是代码逻辑原本就因需求的相互牵扯混乱不堪。除了维护成本以外,作为需要传输给用户的前端代码,任何一行代码都会消耗流量,拖慢加载速度。有人可能会觉得危言耸听了,15行代码所造成的影响的确是微乎其微,但若是N个15行叠加在一起,所造成的影响就会有所体现了,尤其是对访问量大的公司而言。拿多出0.01KB为例,像BAT这种日访问十位数的公司来说,一天多跑出的流量就是几十G。同时,影响到页面加载后,做的所有细节优化用户可能并未看到,就因不愿等待loading而放弃了继续浏览。
添加任何逻辑细节都是有成本的,那么什么样的逻辑应该加,什么样的逻辑不应该加呢?对正常用户有所回报,对我们自身有所回报的逻辑,同时所付出的代价小于回报。
一个简单的反例,注册页面。用户输入手机号获取验证码之后,在提交前去修改了原本的手机号,显而易见这样的操作并不是正常用户的行为。对于这种行为,我们需要处理,但没有必要给特别细致的处理,比如我们可以在他点击获取验证码时将他填写的手机号缓存下来,后面提交注册表单直接取缓存下来的手机号,若是他打算更换手机号,用新的手机号重新获取验证码就可以,最重要的手机号与获取验证码时的手机号是否一致,验证码是否正确由后台验证。而不是细致到当他修改手机号后给予提示“您的手机号已更改,请重新获取验证码”。
上面的例子,细致处理,与非细致处理对我们需要负责的正常用户都是不可见的,细致处理并没有给他们带来什么体验上的提升,同时也并未给我们带来什么,解决什么问题。相反,还有可能由于提示过于详细,给攻击者提供了一些线索,豆瓣登录失败提示就存在这样的一个问题。总结,这样的细节处理,我们付出了一定的代价,但并未给我们以及用户带来什么。
除了一些逻辑细节是否需要细致处理,另外一个需要权衡添加的是用户反馈过来的需求。若是一个逻辑极少有用户会走进去,尤其是这个逻辑加上后会影响到现有逻辑,这样的逻辑也不建议添加。如同上面所说的任何逻辑的添加都是需要成本的,这个成本并不是指的简单的实现成本,有可能也包含了牺牲大部分用户体验的成本。
生活中处处存在交易,想要获得细节带来体验提升,需付出一定的代价。细节与所需付出代价的权衡并不是一件简单事,需要拥有比较大的全局观,有些时候权衡不下,还可能需要一个试错的过程。
很多事说起来容易,做起来并不简单。如同开头所说的,人的行为是不可控的,产品需求同样是不可控的,有主观能够决定的,也有客观不可拒的,从错综复杂的需求细节中顺出需求主线,挑选出重要的细节,正是一个优秀产品人员能力的体现。
网友评论