博客首页最近多了一个"本周最多人读"榜单。功能只有一行字,决策过程却推翻了三版方案。把否决理由记下来——否定清单往往比功能清单更有参考价值。
被否决的方案
- 第三方排行榜组件——引入外部脚本,违背本站"零第三方追踪"原则,一票否决;
- 实时统计——需要后端接口常驻,违背静态站架构,否决;
- 手动维护——诚实但不可持续,热度榜的价值就在"自动"二字。
最终方案:日志聚合
nginx 日志本来就是全量真相,缺的只是聚合。方案落定为:定时任务解析日志、按文章 URL 维度统计近七天阅读数、写入 JSON;前端拉取渲染。全程零第三方、零后端、零 Cookie,且榜单上的数字与日志永远对得上。
一个设计取舍
榜单只展示前五,且永远不做"全站总排行"。原因:总排行会固化为头部垄断,老文章永无出头之日;而"本周"口径给了每篇文章每周一次的平等机会。
意外发现
上线后榜单揭示了一个反直觉事实:访问量最高的文章不是最新的,也不是标题最抓眼的,而是被搜索引擎收录最早的那几篇——老内容的长尾流量,远比想象中可观。这个发现直接改变了我的写作计划:与其追热点,不如把老文章维护好。