先给结论:不要因为“已经花了开发时间”就默认留用,也不要因为“需求方说不要了”就立刻删除。正确做法是把这个功能拆成三笔账——继续维护的长期成本、保留它的实际风险、下线它的返工代价,再用可核对的证据判断哪一笔更大。下面用一个假设情境把决策过程走完。
假设资阳一家做工业配件的企业,建站时规划了一个“经销商在线报备与区域查询”模块。开发进行到联调阶段,业务部门调整策略,决定不再开放经销商自助报备,改由内部人员手工登记。此时功能代码已写完大半,数据库表已建,前端入口也做了雏形。摆在面前的选择只有两个:留用并继续维护,或者下线并清理。
注意,这里的“需求取消”是业务决策变化,不等于功能本身有缺陷。判断留用还是下线,要看的不是当初为什么做,而是现在把它留在站上会带来什么。
很多人觉得“代码已经写了,留着又不花钱”。这个判断通常不成立,因为留用意味着它进入长期维护范围。可以从三个方向取证:
如果这三项里有两项以上需要持续投入,留用就不是“零成本”,而是一笔持续支出。
下线同样有成本,而且常被低估。真正要清理的至少包括:前端入口与菜单项、后端接口与定时任务、数据库表与历史数据、以及可能存在的对外链接或二维码。如果只隐藏入口而不处理接口,接口仍可能被直接调用;如果直接删表,历史报备数据可能无法追溯。
可核对的动作是先做一次依赖盘点:搜索代码中调用该模块的位置,确认是否有其他在用页面引用了它的数据。若存在引用,下线就要连带改造,代价上升;若完全没有引用,下线主要是清理工作,风险较低。
决策卡住时,往往是因为把几种不同情况混在一起。可以按下面的信号区分:
需要提醒的是,入口访问量归零并不能单独证明该功能安全或无用——它可能只是入口藏得深,也可能是爬虫尚未发现,这些都与功能本身的价值无关。
建议的实际动作是:先关闭对外入口并保留代码与数据,观察一个约定周期,比如一个季度。关闭后核对两件事——是否仍有外部请求打到相关接口,以及业务方是否提出恢复需求。
这个动作的结果会直接决定下一步:若周期内无外部请求、业务方也无恢复意向,则进入彻底下线流程,清理代码、表结构和依赖;若仍有请求或出现恢复需求,则转为正式留用,补上登录校验、频率限制和责任人,把它当作在用功能维护。这样做的意义在于,把“留用还是下线”从一次性争论,变成有证据支撑的分步决策。
对资阳企业建站而言,需求变更几乎不可避免。真正要避免的不是留下一个暂时不用的功能,而是在没有证据的情况下,让它以无人负责的状态长期挂在站上。