检查旧项目里与百度快照删除相关的残留依赖,不能只看代码里有没有“快照”两个字。更可靠的做法是:把项目当作一个整体,从构建配置、运行时调用、数据文件和部署脚本四条线分别排查,先找出“还在引用旧逻辑”的位置,再判断它是可安全删除、需要替换,还是必须保留观察。时间和人手有限时,优先处理构建与运行时这两条线,因为它们最可能让项目直接报错或产生错误行为。
很多人以为,只要把某个页面下线,或者把一段调用百度快照相关接口的代码注释掉,残留依赖就清干净了。实际情况往往相反。旧项目里真正难清理的,是那些“间接依赖”:
所以检查的目标不是“找到关键词”,而是找到“谁还在触发这段逻辑”。判断依据是调用链,而不是文本匹配。
构建阶段最容易暴露残留。可以按下面的顺序执行:
package.json、requirements.txt、pom.xml,查找与快照、抓取、爬虫、缓存相关的包名。判断结果时注意:如果某个依赖只被已废弃的代码引用,构建可能仍然通过,但会在打包体积或警告里留下痕迹;如果它被主流程引用,构建就会直接失败。前者可以安排后续清理,后者必须优先处理。
构建通过不代表运行时不触发。可以用两种低成本方式核查:
这里要区分“可能原因”和“已经定位的原因”。日志里出现一次请求,可能是缓存重放、测试数据触发,也可能是真实业务调用。只有结合调用栈或请求参数,才能确定它来自哪里。不要因为看到一次记录就断定整个模块必须保留。
代码之外还有两类地方容易遗漏:
适用条件是:项目已经明确不再需要快照相关功能。如果业务上仍要保留历史查询能力,那么这些数据就不是残留,而是需要继续维护的部分。判断标准是业务需求,而不是“看起来旧”。
如果只能安排一轮排查,建议按影响面排序:
每完成一项,记录“已确认无引用”“仍被某模块调用”“需要业务确认”三种状态。这样即使中途换人,也能接着往下做。
下一步可以选一个影响面最小的模块,按上面的调用链方法完整走一遍,确认清理流程可行后,再推广到其他模块。