先别急着删代码。把已开发功能当作一笔沉没投入,用“维护成本、暴露面、复用价值、数据责任”四个维度做一次书面盘点,再决定留用、隐藏入口还是彻底下线。多数情况下,最省事的做法是保留代码但关闭前台入口,并记录关闭原因和恢复条件;只有当功能涉及过期数据、第三方接口或安全风险时,才值得投入时间真正移除。
打开你手里的需求文档或任务记录,找到这个功能的原始条目。不要凭记忆判断,要落到纸面。处置卡至少写清六项:功能名称、最初提出人、取消原因、当前是否还有入口、依赖哪些外部服务、有没有产生或接收用户数据。取消原因尤其关键——“预算砍了”“业务方向变了”“合规不允许”三种原因,对应的处置完全不同。预算原因可以留用待命,合规原因通常必须下线。
假设一个场景:某企业站曾开发“经销商在线申请”表单,后来渠道政策调整,需求取消,但表单页面还挂在导航里。此时先确认它是否仍在收集手机号和公司名称。如果仍在收集,它就不是“闲置功能”,而是一个持续产生数据责任的入口,处置优先级要立刻提高。
判断留用还是下线,不靠感觉,靠可核对的证据。下面三组信号能帮你分流。
把这三组证据写进处置卡后,通常会得到两个成立条件不同的选择:当功能无外部依赖、无数据收集、且可能被复用,保留代码并关闭入口是合理的;当功能有数据收集或外部依赖,且取消原因涉及合规或安全,直接下线并清理数据更合理。
假设你判断为“保留代码、关闭入口”。实际动作不是简单删掉导航链接,而是分三步:第一,在页面模板或路由配置中把该功能设为不可访问,返回一个明确的提示页;第二,在代码仓库中给相关文件加注释,写明关闭日期、取消原因和恢复条件;第三,在站点地图和内部链接检查中排除该地址,避免它继续被当作有效页面。做完这三步,下一步是观察服务器日志中该地址的请求是否下降。如果请求仍来自外部引用,说明还有旧物料在导流,需要同步处理。
如果判断为“彻底下线”,动作顺序相反:先停止数据收集,再导出并按规定处理已有数据,然后移除路由和模板,最后清理数据库表和定时任务。注意,删除代码前要确认没有其他功能在调用同一段逻辑,否则会连带破坏正常页面。
以下条件满足任意一条,就不建议继续留用:功能仍在接收用户提交的个人信息;功能依赖的第三方接口已经停止服务或无法确认状态;取消原因是监管要求或平台规则变化;功能入口出现在支付、登录等敏感流程附近。这些情况下,留用的风险不是“浪费空间”,而是持续暴露。此时应把下线当作一次小型变更来处理:记录影响范围、通知相关同事、在测试环境验证移除后主流程不受影响,再发布。
无论选择哪种处置,都在处置卡上写一个复查日期和触发条件,例如“若六个月内业务重新提出同类需求,则评估恢复;若期间出现新的数据合规要求,则立即复审”。这样做的目的不是拖延,而是让“留用”变成有期限的临时状态,而不是无人负责的默认状态。复查时只需重新核对访问证据和依赖证据,不必从头评估。
把这张处置卡和代码注释放在一起,下次有人问起这个功能为什么还在或为什么没了,你能直接给出依据,而不是重新争论一遍。