先别急着删代码。判断标准不是“业务方还要不要”,而是这项功能是否仍在承担可观测的职责,以及保留它未来要付出多少隐性成本。如果功能已进入正式环境、有访问或数据写入,通常应保留并标记为待观察;如果只存在于未合并分支或测试环境、无人调用,下线更干净。介于两者之间的情况,优先改写为低维护形态,而不是原样留着。
需求取消只是发起方的决定,不等于功能在系统里已经死亡。评估第一步是找证据,而不是听结论。可以查三类痕迹:入口是否还被页面或接口引用,日志里是否还有调用记录,数据库里是否还有新增写入。三者只要有一项持续存在,就说明它仍嵌在某个链路里,直接删除可能连带影响其他模块。
反过来,如果入口已从导航和页面移除、日志连续一段时间无调用、也没有新数据写入,那么“无人使用”的判断才站得住。这里要注意,调用量归零也可能是流量本身下降、入口被临时隐藏或监控口径变化造成的,不能单独作为下线依据。更稳妥的做法是把入口引用、调用日志、数据写入三条证据交叉比对,再决定下一步。
当功能已经对外可见、被外部系统调用,或者写入的数据已被其他报表、结算、对账流程引用时,保留是默认选择。此时删除的代价不是删几行代码,而是修复一条已经被人依赖的链路。保留的前提是你能接受它的维护成本,并且愿意为它指定一个明确的负责人和复查时间点。
保留不等于放任。至少要给它加上状态标记,说明需求已取消、当前处于观察期。这样后续接手的人不会误以为这是正式需求,也不会在重构时随手删掉。
常见情形是:原始需求取消了,但功能里有一部分能力仍被复用,比如某个查询接口、某段数据校验逻辑。整块保留会带来不必要的页面、权限和配置负担,整块删除又会伤到复用方。这时改写比二选一更合适——把仍在用的部分抽成独立、职责单一的小模块,把只为原需求服务的界面和流程去掉。
改写的适用条件是你能清楚划出“还在用”和“已废弃”的边界。如果边界模糊,说明还没查清依赖关系,应该先补证据,而不是急着动手。
只有确认入口无引用、无调用、无新数据写入,并且历史数据已按合规要求归档或保留后,下线才是安全选项。下线动作本身应包含移除入口、停用接口、清理配置和权限,而不是只删业务代码。做完之后,观察一个完整业务周期,确认没有异常反馈,再进入代码清理。
假设某功能是“会员积分兑换入口”,需求方取消了兑换活动。查证发现:页面入口已从导航移除,但接口日志每天仍有少量调用,来源是旧版 App;数据库每天还有零星兑换记录。三条证据里两条显示仍在使用,那么结论应是保留并标记观察,同时联系旧版 App 的维护方确认是否停用。若强行下线,旧版 App 用户会遇到报错,后续排查成本远高于保留成本。这个例子的数字只为说明比较方法,不代表任何真实项目。
无论选哪种处理,都应记录判断依据:查了哪些入口、看了多长时间的日志、数据写入情况如何、谁负责复查。然后设定一个复查触发条件,比如“旧版 App 下线后重新评估”或“连续一个季度无调用则进入下线流程”。这样做的结果是,下一次评估不必从零开始,也能避免功能被无限期搁置。
对嘉兴网站开发而言,需求变化本身很正常,真正影响成本的是变化之后有没有留下清晰的处置记录。把保留、改写、下线当成有前提的决策,而不是情绪化的取舍,后续维护才不会反复返工。