先给结论:不要因为“已经花掉开发时间”就默认留用,也不要因为“需求方说不要了”就立即删除。判断依据应是这个功能是否仍在产生可观测的维护成本、是否与现有流程冲突、以及下线后会不会破坏已有用户路径。若三项都指向高成本或高冲突,下线通常比留用更省事;反之,可以先隔离保留,再设一个复查条件。
假设一个桂林本地服务类网站,原本计划做“在线预约选时段”功能。开发完成后,业务方决定取消线上预约,改为电话确认。此时功能代码、后台入口、数据库字段都已经存在,但没有任何对外入口,也没有真实用户使用记录。团队面临两个看似都合理的做法:一是留用,理由是以后可能恢复;二是下线,理由是没人用还占维护精力。这个情境的关键不是功能好不好,而是它当前是否还在被依赖。
留用的成立条件通常是:功能与现有页面没有入口冲突,后台没有运营人员日常操作它,代码不依赖即将升级的组件,且未来半年内有明确恢复计划。下线的成立条件通常是:没有外部链接指向它,没有用户数据需要保留,后台菜单里它已造成误操作,或者它依赖的接口、字段、第三方服务已经变化。
需求取消只代表发起人不再推进,不代表没有其他使用者。评估第一步是找证据,而不是开会投票。可以查四类痕迹:
如果请求量归零,不能直接证明可以下线。它也可能是入口被隐藏、页面被改版、或者功能只在特定登录状态下才出现。反过来,如果还有少量请求,也要看请求来自哪里,是否只是旧缓存或外部扫描。把“有没有调用”和“调用是否有效”分开记录,才能决定下一步。
留用一个已取消需求的功能,真正代价往往不在磁盘占用,而在每次改版、升级、换主题、调整权限时都要多考虑它。可以用一张简单清单估算:
如果其中两项以上答案是“是”,留用的隐性成本就会持续出现。此时更合理的动作是把它从主菜单和主流程中移出,保留代码但标记为停用,并记录停用原因和复查日期。这个动作的结果是:运营人员不会再误操作,开发人员仍可在需要时找回逻辑,下一步只需决定是否彻底删除数据表。
下线不等于直接删代码。先确认以下三点,任何一点不成立都应暂缓:
完成这三项后,再执行删除入口、移除菜单、停用路由、归档数据。每一步完成后观察一段时间,确认没有异常请求或运营反馈,再进入彻底清理。这个顺序能避免“先删后补”的返工。
把上面的依据合成一个短流程,适合在桂林网站设计项目交接或改版前使用:
这样处理的核心是:用可验证的使用痕迹和维护成本代替“已经做了”或“需求取消了”这类单一理由。留用不是保守,下线也不是浪费,关键是让下一步动作有明确依据。