直接答案
先让代理绘制依赖、调用者、数据流和未文档化行为,再围绕可观察契约增加特征测试。保持外部接口稳定,把迁移拆成可逆的小切片,并使用同一组脱敏输入比较旧路径和新路径;只有迁移、回滚与观测关卡都通过后才删除遗留代码。
关键结论
- 结构调整前先映射行为、所有权与运行边界。
- 特征测试记录现状,但不代表每个遗留行为都正确。
- 内部逐步迁移时保持兼容边界稳定。
- 旧路径删除是迁移完成后的独立决策。
关键事实
这篇内容解决什么问题
在不把大段代码生成当作行为保持证据的前提下,规划并执行 AI 辅助遗留系统重构。
核验范围与限制
- 证据类型
- 官方文档协议规范本地验证
- 核验范围
- 覆盖遗留系统探索、行为捕获、迁移切片、兼容验证、渐进发布与删除关卡。
- 限制与失效条件
- - 特征测试可能保留缺陷,必须对照当前业务要求审查。
- - 数据、流量与外部消费者迁移仍需独立生产方案。
绘制契约与变更边界
让代理识别入口、消费者、持久数据、定时任务、外部协议和部署单元,并引用代码或文档;未知行为必须明确标记,不能靠猜测填补。
与维护者核对所有权和运行约束。仅来自 import 的依赖图不足以代表真实运行集成。
改变结构前捕获可观察行为
在公共 API、事件、数据库效果、文件或用户输出处增加测试;加入脱敏后的边界与错误样例,并标注可疑行为,避免测试把缺陷静默固化成永久需求。
- 记录已脱敏的代表性输入和输出。
- 区分正式契约与偶然实现细节。
- 识别无法在同一版本迁移的消费者。
- 引入双路径前定义回滚信号。
定义可逆的迁移切片
选择一个端点、命令、数据适配器或包边界作为切口,让代理提出保持公共行为的文件级方案和测试。不能只凭架构摘要就批准全仓重写。
格式化和无关清理移出迁移 diff;小变更能保留 blame 历史,也更容易定位行为差异。
用受控输入比较新旧路径
在条件允许时,用同一组脱敏 fixture 或影子输入运行新旧实现,比较外部有意义的输出。差异必须分类为预期契约变化、容许的非确定性或缺陷。
双路径需要资源上限和明确写入规则,不能为了对比而复制不可逆的生产副作用。
用关卡控制发布和遗留删除
每个切片都应通过特征测试、新契约测试、包级检查、审查和回滚演练。渐进发布期间观察错误与资源使用;消费者、数据、文档和告警迁移完成后才删除旧代码。
- 01行为关卡新旧路径满足已审查契约。
- 02兼容关卡消费者和版本预期仍成立。
- 03运行关卡遥测和回滚能够安全识别回归。
- 04删除关卡没有活跃调用者、任务或数据路径依赖遗留实现。
让仓库说明与新架构保持一致
切片落地时同步更新架构文档、代理说明、所有权、构建命令和 runbook,并删除过时规则,避免后续会话继续把工作导向已下线模块。
官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法