本文是从纯产品的角度来探讨问题,同款产品对不同的公司的商业价值不一样,是否过度设计这个问题不在此深究。
现有案例如下,某网站首页,有一呈现公告的区域,可放3条公告(或广告信息),从后台添加公告信息,那么如何设计此功能?
首先,需要解决的一个问题是,这3条信息,在页面呈现上,有第一、第二、第三的区别。那么,我们按什么样的方式来排序呢?
可能会涉及到的排序方式有3种:按生效时间排序,按优先级排序,置顶排序。
- 按生效时间排序,不可以,因为老板说,团购活动明天上线,放第一位,加红,重点推一下,要是按上线时间排序,就杯具了;
- 按优先级排序,应该是对的,优先级由发布人员手动控制;
- 置顶排序,如果只有一个置顶级别,那么后面两个排序控制不了,如果有两个置顶级别,那跟按优先级排序是一回事了,当然,肯定无须三个置顶级别。
结论是,我们后台按优先级排序吧,发布新公告时,都给每条公告标注123就OK啦。好吧,貌似很容易解决此问题了。
其次,我们按上面的思路接下来细想,发布新公告时,添加该条公告的排序,想排第2位,就填2,想排第1位,就填1,真是这样么?
答案当然是不可以。假设公告1过期下线了,新添公告4出来,要排在第2位,如果我们对此条公告排序,只是填个2,就杯具了,与原来的第2位的公告出现了冲突。
所以,每新增一条公告时,我们都必须通知系统自动找出该时段内未下线(是查结束时间,不是开始时间)的另外两条公告,重新对3条公告进行一次手动的优先级排序;
最后,再想一下,按时间排序和优先级结合起来排序,优先级可以不填写,默认按时间排序,如果新增的公告4,设优先级为2,则优先占据第2的位置,第1位,与第3位就按默认的时间排序,是不是可以解决问题呢?表面一看貌似是,不过如果出现,原来的第2位,为什么是第2位,也不是按时间排的,也是手动输入的优先级,此时就又杯具了,又冲突了,怎么解决?以后添加的时间为更高优先级吧,这样就解决了。你晕了吗?晕了吧!我也差不多晕了!这方案过于复杂,我也没想明白。
有朋友说用广告位的设计方法不是很容易实现么?也就是说,每条公告都是一个独立的广告位,有独立的排期,互不冲突,多好啊!实际上,解决不了我们上面提出的问题的。发现了吧?
结论,所以最终的解决方案是:每新增一条公告,都得手动重新填写一下3条公告的优先级顺序,并且,每次修改任意一条公告信息的时候,你都得重新调整一下3条公告的优先顺序,如果不填写,就按时顺序排了,你可别后悔!
求最优解决方案,欢迎指导。作者QQ:524044537,Email/Gtalk:hongwen.he#gmail.com
感谢@程寅Beta同学,@joby同学,他们利用宝贵的看电影和上班时间跟我讨论了很久。




