先给结论:不要因为“已经花了开发时间”就默认留用,也不要因为“需求方说不要了”就立刻下线。正确做法是把这个功能拆成三笔账——继续维护的长期成本、下线可能造成的连带影响、以及留用后能否找到新责任人。三笔账都算清,再决定留、关、还是冻结。下面用一个假设情境把决策过程走一遍。
假设某龙岩本地企业站,原本计划上线“会员积分兑换”页面,用于老客户回访。前端页面、积分规则展示、兑换表单都已开发完成并部署到测试环境,但业务部门后来决定不做会员体系,需求正式取消。此时这个页面既没有真实用户,也没有对外入口,但代码、模板和后台配置都还在。团队面临的选择是:直接删除、保留但隐藏、还是继续小范围维护。
这个情境的关键不是“要不要这个功能”,而是“已经存在的功能该以什么状态存在”。下面按三步评估。
留用不等于零成本。只要功能还在代码库里,它就会持续产生三类负担:
可以做一个简单动作:让维护人员在下次常规升级时,专门记录这个功能是否引发额外改动。如果连续两次升级都需要为它单独处理,说明维护成本已经高于它的潜在价值,留用的理由就变弱了。
需求取消不代表功能可以干净删除。下线前要确认三件事:
一个可区分的证据是:如果关闭入口后,站点访问日志中该地址的请求量在合理观察期内降到接近零,同时没有站内链接指向它,那么下线风险较低。但要注意,请求量归零也可能只是因为入口早已被隐藏,不能单独作为“没人需要”的证明,还要结合业务方确认。
三种处理方式各有适用条件:
假设上述积分页没有任何外部链接,也没有真实用户数据,业务方明确表示一年内不会重启会员体系,那么下线是合理选择。动作是:先移除测试环境入口,观察一个升级周期,确认没有连带报错后再删除代码。这个动作的结果会直接影响下一步——如果升级周期内一切正常,就可以安全清理;如果出现报错,说明还有隐藏调用,需要先解耦再删除。
上面的判断在单个功能上成立,但站点功能数量变多后,评估方式要调整。个别样本中“没人访问就下线”的逻辑,在规模化后会遇到例外:某些功能访问量低,却是其他流程的依赖项;或者多个废弃功能共享同一套底层组件,单独删除其中一个会破坏其他部分。
因此,当待评估功能超过一定数量时,应先做依赖关系梳理,再批量决策,而不是逐个删除。边界在于:单功能看访问和引用,多功能的场景要看组件复用和调用链。把这两层分开,才能避免“删了一个,坏了三个”的情况。
回到最初的问题:需求取消后,功能是否留用,取决于维护成本、连带影响和重启可能性三者是否同时支持。先算账,再动手,比凭感觉删除或保留更可靠。