结论是有条件的:如果这个功能已经上线、有真实访问或业务依赖,优先考虑留用并补上维护责任;如果它只存在于代码里、没有任何入口和调用方,优先下线。判断的关键不是“开发花了多少成本”,而是“继续保留会不会产生持续成本或风险”。下面给出可操作的评估顺序,并说明什么情况下这个结论会失效。
同样叫“需求取消”,实际状态差别很大,处理方式完全不同。可以按下面三类分别判断:
实际操作上,先做一次代码检索:搜索该功能的路由注册、菜单配置、定时任务列表和外部调用方。如果检索结果为空,基本可以判定为第二类。这个动作的结果直接决定下一步——空结果就进入下线评估,有结果就必须先评估依赖。
不要凭感觉争论,用能查到的信号说话:
三个信号都指向“无访问、无数据、无外部依赖”时,下线是合理选择。只要有一个信号指向“有依赖”,就应先留用并补文档,而不是急着删除。
假设某商洛本地企业的网站里,有一个已开发但需求取消的“在线预约”模块。按上面的信号检查:访问量低、数据表里只有测试数据、没有外部系统引用。看起来应该下线。
但如果这个模块的代码被另一个仍在使用的功能复用了同一套表单校验或文件上传逻辑,直接删除会连带影响正常功能。此时“无访问”这个信号就失效了,因为判断对象不只是页面,还包括它牵连的公共代码。
边界在于:当被取消的功能与在用功能共享组件、数据表或中间件时,不能按单功能下线处理,必须先做依赖隔离,再决定是否删除。这也是“个别样本成立但规模化后出现例外”的典型情况——单个功能看起来干净,放到整个代码库里却未必。
如果确认可以下线,建议按以下顺序操作,每一步的结果决定下一步是否继续:
如果选择留用,动作同样要具体:给该功能指定维护责任人,在代码注释或内部文档中标注“需求已取消、暂留用”,并写明复查时间。没有责任人的留用功能,会在下一次升级时变成无人敢动的部分。
无论留用还是下线,都建议留下一段简短记录:功能名称、当前状态、判断依据(访问、数据、依赖三项)、决定结果和复查时间。这份记录的价值不在于归档,而在于当同类需求再次出现时,你能快速判断它是新需求还是旧功能的延续。评估的终点不是删掉或留下,而是让下一次决策有据可查。