先给结论:不要因为“已经做完了”就默认留用,也不要因为“需求取消了”就立刻删除。判断依据只有两条——这个功能是否仍在产生可观测的维护成本,以及它是否仍被真实访客使用。两条都否,下线;任一条成立,留用但必须补上归属和维护约定。下面把两种条件下该怎么做拆开说。
这是快速建站里最常见的情况。需求方撤了,页面却还在被搜索引擎或老用户带到,后台也没有明确的负责人。此时直接下线会制造死链和体验断层,直接留用则会让一个没有归属的模块长期占用模板、脚本和数据库查询。
可操作的判断动作是:先看访问来源,再看访问深度。如果流量主要来自外部链接或历史收藏,说明它还有入口价值;如果只是站内导航里一个没人点的入口,价值就低得多。假设一个活动报名页,活动已结束,但每天仍有少量访客从旧邮件里的链接进入——这属于“仍有访问、但需求已终止”,处理方式应是保留页面、移除报名提交逻辑、加一句状态说明,而不是整页删除。
留用时要做的实际动作有三步:把功能从主导航撤下、在代码或模板里标注归属人和复核时间、把依赖的接口或表单降级为只读或静态展示。做完这三步,下一次有人问“这个还在不在用”时就有据可查,而不是靠记忆。
另一类情况是访问量已经很低,但功能和其他模块耦合:共用一张数据表、共用一段脚本、共用同一套权限。这时“下线”不等于删文件,而是要先切断依赖。
判断是否值得拆,可以看三个信号:一是它是否还在被其他页面调用;二是它是否还在定时任务或后台流程里被触发;三是移除后是否会影响已发布内容的展示。三个信号里有一个为真,就不适合直接删除,而应先做隔离——把入口隐藏、把调用改为空实现、观察一段时间再决定是否物理删除。
这里的取舍是:隐藏入口的代价小、可逆;物理删除的代价大、不可逆。在需求已经取消、又没人催着清理的情况下,优先选可逆动作。等到确认没有报错、没有断链、没有后台任务失败,再进入删除环节。
评估留用或下线,最怕用“我觉得没人用了”当依据。可以固定看这几项,且只看与这个功能直接相关的部分:
需要提醒的是,访问量归零不能单独证明可以删除。它也可能是统计代码没覆盖、入口被临时隐藏、或者搜索引擎尚未重新抓取造成的。要先把这些解释排除,再下结论。
建议按“先降级、再观察、后删除”的顺序推进。第一步,把功能入口从导航和推荐位移除,保留直达地址可用;第二步,观察一个复核周期内的访问和报错;第三步,若确认无访问、无引用、无报错,再删除代码与数据,并为可能存在的旧链接设置跳转。
这个顺序的结果会直接决定下一步:如果降级后访问仍然存在,说明它还有入口价值,应转为留用并补归属;如果降级后出现其他页面报错,说明耦合比预想深,应回到隔离状态先解耦;如果降级后一切平稳,才进入删除。例外情况是涉及用户数据、支付记录或合规留存的功能,即使无人访问也不宜直接物理删除,应改为归档并保留可恢复路径。
最后给一个简短的判断口径:需求取消只是起点,不是结论。留用的前提是仍有访问或仍有依赖,且有人负责;下线的前提是无访问、无引用、无报错,且删除动作可逆或已有替代。按这个口径走,既不会因为沉没成本留下包袱,也不会因为一刀切删掉还有用的入口。