本文摘要
本文通过探讨 Hexo 博客文章置顶功能的实现方案,回答了如何进行正确的需求分析以及避免过度工程化的问题。核心结论是:实现一个需求不仅要达到表面效果,更要符合产品逻辑本质;错误的设计(如用排序代替置顶、翻页后依旧置顶)往往源于产品思维的匮乏。如果你正在为博客开发新功能,或者希望提升自己拨开表象看清需求本质的产品思维能力,可以优先关注本文的案例剖析;但如果你只是想直接复制一段置顶代码而不在乎底层逻辑,则不建议阅读。继续阅读可以了解这几种常见错误实现的深层原因,以及如何通过多实践、多归纳来提升自己的思维高度,避免在日常开发中踩入低级的产品逻辑陷阱。

前端路上技术博客是基于Hexo构建发布的,最近需要给博客加上置顶功能,想来这种需求肯定早已经被前人充分“轮子”了,于是打开搜索引擎输入“hexo 置顶”,期望看到经过时间洗礼后整齐划一的“最佳实践”。

结果稍微有一点出乎意料,又对又好的方案只有一个,看来大家都很懒,找到一个能用的自己就不折腾了,可能因为这个需求也确实简单了点,没有重复折腾的必要。

这个唯一正确的实现是hexo-generator-index-pin-top,安装插件后,只要给文章属性添加top: true就可以实现置顶。

但在搜索结果前十里面,还夹杂了一些错误的实现,这就有点没想到了。

这些实现是错的

他们分别是:

  1. 用排序代替置顶
  2. 不光首页置顶,翻页也置顶

为什么这么简单、历史悠久的需求,搜索引擎都不能给出一致而正确的结果呢?有两种可能的解释。一,这说明长期以来像搜索引擎提出这个问题的用户中,有一部分人仍然把时间花在了那些错误的实践上,使搜索引擎认为这些错误结果仍然有参考价值;二,正确的实现仅有一个,即便拾人牙慧的文章搬运工也懒得重复抄录了,导致正确结果数量太少,搜索引擎必须顺位将其他结果也填充进来。

不管什么原因,都一定程度上说明Hexo的生态没有想象中的健康,Hexo官方插件库的搜索结果中,也有大量的垃圾插件。说到生态,可以再进一步想一个问题,为什么Vue这么容易上手?一个很重要的原因是官方对几个主要需求做了垄断,直接给最佳实践,不需要开发者自己折腾,因为折腾半天做出来的可能也是个垃圾。

再回来看看上面那两种错误实现吧。

他们为什么错了

第一种思路,给每篇文章加一个高优先级的排序条件,比如sort。这样实现的置顶效果,本质上跟置顶不是一回事。置顶,顾名思义就是排第一,而排序不光可以排第一,还可以排第N,这个思路最终做出来的,其实根本不是置顶。一个小例子就可以证明,真正的置顶应该可以给置顶文章加置顶标识,而排序出来的置顶文章就没法加,因为逻辑上就没有top: true这样的明确标记,怎么加?

水平一般的产品经理经常犯这种错误,他们分不清什么是正确的思路,什么是只能在有限情况下暂时满足需求的思路。

第二种错误更低级,让置顶对象始终在列表顶部,无视翻页。本质是使被置顶对象脱离了原队列,直接结果就是毁灭性的破坏用户体验,每次翻页都会看到这一条,拜托,我都翻页了!

这特么压根就是一个广告位。没有任何产品思维的人才能干出这种事,希望他们永远不要尝试做产品经理。

怎样避免犯这种错误

高手都是用时间和金钱堆出来的,多做事,多犯错。

养成归纳事物本质的习惯,思维高度是第一生产力。

说来说去还是那句话,同样优秀的人比勤奋,同样勤奋的人比优秀。