60 万行 Java 巨石应用的 AI 重构:把「迁移代码」变成「迁移行为」
支付宝生活缴费系统包含约 60 万行 Java 代码、600 多个接口,它的跨语言重构难点不在写代码,而在证明新系统仍保持老系统的关键行为。蚂蚁集团研发工程师蒋宇在 QCon 上海站将分享一套双 Loop 工程方法:先提取行为,再用差分回放验证行为,让 AI 生成的代码从「能生成」走到「可验证、可发布」。
一场关于「AI 重构怎么验收」的分享
2026 年 QCon 全球软件开发大会上海站定于 10 月 22 日至 24 日举办,主题聚焦 Harness AI 时代的工程实践,覆盖 AI Native 架构、Agent Runtime、AI Infra、Data Systems、Agent 安全与可观测、Loop Engineering、Vibe Coding、具身智能与世界模型、端云协同等方向。
蚂蚁集团研发工程师蒋宇已确认出席「Vibe Coding 时代的新质量债」专题,带来题为《60 万行巨石应用 AI 重构的可验证交付工程》的演讲。
在我们长期关注的 AI 编程与氛围编程话题里,「AI 能写出代码」早已不是瓶颈,真正的难题是:谁来证明它写对了?这场分享正好落在这一环节上。
重构对象:一个不能出错的核心在线系统
本次演讲来自支付宝生活缴费系统的一次跨语言重构实践。这个系统包含约 60 万行 Java 代码、600 多个接口,长期承载核心在线业务,内部有复杂的业务分支、按机构差异化的配置、分布式调用链以及外部依赖。
传统交付方式依赖代码评审、补充测试用例、上线后观察。这套方法能发现局部实现问题,却难以给出一个明确结论:在预期的业务边界内,新系统是否仍保持着老系统的关键行为。
思路转变:目标从「迁移代码」改为「迁移行为」
面对上述缺口,蒋宇将重构目标从「迁移代码」调整为「迁移行为」,并建立两个相互校验的 Loop:
- Loop 1:从老系统提取业务行为。 通过 PERS 建模、Case-Forge 路径压缩和人机协同,完成场景生成。
- Loop 2:在新系统中回放同一批场景。 使用 Bubble 验证实际执行路径,判定新老系统的行为差异;再结合真实流量回放,为分阶段切流提供依据。

两个核心工程问题
演讲将重点剖析两个问题:
- 如何从复杂分支中提取规模可控、同时不失真的行为集合;
- 如何识别 AI 生成用例中的路径偏移与假覆盖,并把差分结果转化为可发布、可观测、可回退的工程决策。
这两点指向同一个现实:AI 生成测试用例看起来数量庞大,但如果执行路径与真实业务分支对不上,「覆盖率」就只是数字。对正在用 AI 写代码的团队而言,这是必须补上的一课。
讲者简介
蒋宇于 2021 年加入支付宝,现任支付宝数字民生技术研发工程师,长期深耕生活缴费领域,参与复杂高并发生产系统的架构演进与工程建设。近年来他聚焦 AI 原生软件工程,探索 AI 时代大规模遗留系统的重构方法与交付体系,重点研究如何通过行为建模、场景生成、差分验真与流量回放,让 AI 生成的代码从「能够生成」走向「可理解、可审查、可验证、可发布」。
代码写完了,为什么重构还没结束
在 60 万行级别的巨石应用里,大规模跨语言重构面对的核心问题从来不是语法转换。真正要迁移的,是散落在代码分支、机构配置(不同机构走不同规则的配置项)和外部交互中的业务行为。
代码评审通过、生成的用例全部 PASS、覆盖率数字上升——这些只能说明「被检查到的那部分实现」没问题,并不能证明目标业务分支真的被执行过。
因此,重构交付最终要回答三个问题:
- 老系统里有哪些关键行为必须迁走?
- 新系统是否真的复现了这些行为?
- 发现差异之后,能不能据此决定「发还是不发」?
思路:把跨语言重构变成行为迁移
这套方法不要求新旧代码逐行对应。它的前提是先划出明确的建模边界和可观察边界,然后在这个边界内验证:业务终点、核心返回、副作用和关键交互是否等价。
具体做法是建立两个互相校验的 Loop(闭环):
Loop 1:回到老系统,确定「需要迁移的行为到底有哪些」。
Loop 2:进入新系统,验证「这些行为是否被真实复现」。
关键在于把「场景生成」和「执行验真」拆开。AI 可以参与理解和生成,但不能既生成目标、又修改数据、还自己宣布目标已经完成——那样验真就失效了。这种「生成交给 AI、验证交给机器」的分工,也正好对应眼下氛围编程里「生成很快、验证很慢」的典型痛点。
于是交付物不再只是新代码,还包括:行为模型、可执行场景、实际执行路径证据、差异结论,以及发布与回退的依据。
双 Loop 怎么贯穿重构和上线
Loop 1 从老系统里识别业务终点(也就是业务真正「走完」的那个结果点),用 PERS 来描述行为。PERS 是一种与编程语言无关的行为描述方式,把前置条件、触发事件、业务结果和副作用组织在一起。它通过路径压缩控制组合规模,再由 AI 补全业务数据、机构配置和 Mock 语义。
Loop 2 则在相同的输入和相同的依赖响应约束下,把新系统回放一遍,验证实际执行路径,并比较新旧系统的业务结果和对外影响。
两个 Loop 靠「行为场景」连接。每个场景都要凑齐四样东西——目标行为、输入约束、实际路径证据、差分结论——才能进入后续的流量验证。
整条链路串起来是:老系统行为提取 → 新系统回放验真 → 差异驱动修复 → 真实流量验证 → 分阶段切流。
技术深挖一:得到规模可控又不失真的行为集合
在复杂接口里,请求参数、机构配置和外部返回会共同决定走哪条执行路径。把所有因素直接组合会导致场景数量爆炸;只保留高频或 Top-N 路径,又可能漏掉低频但会失败的终点。
Case-Forge 的做法是:先按业务终点组织候选路径,复用共享的分支条件,对只影响局部结果的独立因素做增量展开,再剪掉约束冲突或根本走不到的组合。
路径压缩的目标不是「用例最少」,而是在执行成本可控的前提下,为每一类关键业务终点留下有代表性的可执行路径。分工上也很清楚:确定性分析负责给出路径骨架和条件约束,AI 负责把抽象条件展开成具体的业务数据、机构配置和 Mock,人负责确认高风险终点和语义边界。
文中以一个同时受请求参数、机构配置、外部返回影响的接口为例,演示如何从海量组合里识别业务终点、压缩候选路径,并生成「人能审查、机器能执行」的场景。
技术深挖二:识别假覆盖,做差分验真
实践中出现过这样的情况:AI 生成的用例描述看起来很合理,最后的断言也 PASS,但实际执行在前置分支就提前结束了,目标调用和目标业务终点根本没发生。
进一步看,问题不在断言本身,而在于输入、配置和 Mock 的组合没有满足目标路径的约束。AI 完成了一个「能通过」的用例,却没有覆盖到预期行为。
所以有效覆盖不能只看最后一条断言,还要同时确认:目标终点是否到达、关键条件是否满足、必要调用是否发生、副作用是否符合预期。只有实际运行证据与目标路径一致,这个场景才计入有效覆盖——这条规则把「用例执行成功」和「目标行为真的发生」区分开来。
Bubble 在相同的请求和依赖响应约束下分别回放新旧系统,把行为一致性转成一组可判定的等价约束:业务终点一致、核心返回语义一致、关键副作用一致、重要 IO 交互可解释。
差异并不直接等于重构错误。空串和 null、时间戳这类非确定字段需要归一化;老系统原本就有的行为和本次主动变更要单独确认;实在无法归因的差异则阻断下一阶段。
离线场景验真通过后,再结合录制流量回放验证真实请求分布,并通过白名单、小流量、分阶段切流逐步扩大范围。每个阶段都要有明确的观测指标和回退路径。
工程判断:从“用例跑通”到“行为可证明”
用例通过不等于目标行为被覆盖
覆盖判断必须建立在实际路径证据上,不能只看用例数量、断言结果或覆盖率数字。AI 可以参与生成场景,但它无法独立证明自己生成的场景正确。目标定义、场景生成和执行验真需要形成相互独立的约束关系:谁定目标、谁造场景、谁验结果,不能混在一起自说自话。
老系统是参考,不是绝对规格
老系统的行为可以作为参照,但不等于绝对正确的规格。历史遗留问题、本次主动变更和真正的重构偏差要分类处理,不能机械追求所有字段完全一致。
离线环境一致也不构成上线的充分条件。缺少路径证据、差异无法归因、真实流量表现不明确,或者没有回退能力时,都不应继续扩大流量。
单体与分布式系统:观测边界不同
这套方法不依赖单体或分布式架构。单体系统重点观察返回结果和状态变化;分布式系统还要把外部调用、消息和副作用纳入行为边界。关键在于能否定义并观测住那些需要保持不变的业务行为。
实践中的四组取舍
行为完整性与执行成本。 复杂分支无法全部穷举,但过度压缩又可能遗漏低频失败行为。实践中的规则是:先保证关键业务终点不丢失,再压缩到达同一终点的等价路径。
AI 生成效率与路径真实性。 实践中出现过用例断言通过、目标调用却根本没发生的“假覆盖”。如果只统计通过数量,就会高估重构的验证程度,因此必须引入独立的实际路径证据。
严格一致与生产差异。 逐字段比较会被空值表达、时间戳等差异产生的噪声淹没;整体放宽比较又可能掩盖真实业务偏差。更合理的做法是按业务终点、核心语义、副作用和 IO 交互进行分层判定。
离线可重复与线上真实性。 离线场景便于复现和定位问题,但覆盖不了全部真实请求分布;真实流量更接近生产环境,却需要控制影响范围并保留快速回退能力。
分享内容与听众收获
本次分享围绕一套面向大规模 AI 重构的“双 Loop”方法展开:把老系统行为提取、新系统回放验真和上线切流连接起来,使 AI 重构从代码生成延伸到可验证、可发布的完整交付过程。
覆盖判断也从“用例是否通过”升级为“目标行为是否真实发生”:通过实际路径证据识别 AI 场景中的路径偏移与假覆盖,并利用分层行为等价约束形成差异归因和发布依据。
听众可以带走四点:理解为什么代码评审、覆盖率和用例数量无法单独证明大规模重构的正确性;掌握以业务终点组织行为模型、压缩复杂路径规模并控制场景成本的方法;掌握 AI 语义展开的适用边界,以及路径偏移和假覆盖的识别方法;掌握新老系统差异的分层判定方式,以及从离线验真、真实流量回放到分阶段切流的工程决策框架。
重构交付必须先回答的三个问题
大规模跨语言重构面对的从来不是简单的语法转换,而是散落在代码分支、机构配置和外部交互中的业务行为迁移。代码评审通过、生成用例 PASS、覆盖率上升,都只能说明部分实现得到了检查,不能证明目标业务分支真正执行过。
因此,重构交付最终要回答三个问题:老系统有哪些关键行为需要迁移;新系统是否真实复现了这些行为;发现差异后,能否据此作出发布决策。实现上不要求新旧代码结构逐行对应,而是在明确的建模与可观察边界内,验证业务终点、核心返回、副作用和关键交互是否等价。
双 Loop:先提取行为,再回放验真
整套方法建立两个相互校验的 Loop。Loop 1 回到老系统,确定“需要迁移什么行为”;Loop 2 进入新系统,验证“这些行为是否被真实复现”。
一个关键原则是把场景生成与执行验真分开。AI 可以参与理解和生成,但不能同时负责生成目标、修改数据,再证明目标已经完成。相应地,重构交付物不再只有新代码,还包括行为模型、可执行场景、实际路径证据、差异结论,以及发布与回退依据。
Loop 1 从老系统识别业务终点,使用 PERS 表达行为,通过路径压缩控制组合规模,再由 AI 补全业务数据、机构配置和 Mock 语义。Loop 2 在相同输入和依赖响应约束下回放新系统,验证实际执行路径,并比较新老系统的业务结果和外部影响。两个 Loop 通过行为场景连接,每个场景都需要具备目标行为、输入约束、实际路径证据和差分结论,才能进入后续流量验证。整体形成“老系统行为提取—新系统回放验真—差异驱动修复—真实流量验证—分阶段切流”的交付链路。
PERS 与路径压缩:别让组合爆炸吞掉低频终点
PERS 把前置条件、触发事件、业务结果和副作用组织为独立于编程语言的行为描述,使老系统中的业务知识能够进入新系统验证。
在复杂接口中,请求参数、机构配置和外部返回会共同影响执行路径。直接组合所有因素会产生场景爆炸,简单保留高频或 Top-N 路径又可能遗漏低频失败终点。Case-Forge 的做法是先按业务终点组织候选路径,复用共享分支条件,对只影响局部结果的独立因素做增量展开,并剪除约束冲突或不可达的组合。路径压缩的目标不是得到最少的用例,而是在执行成本可控的前提下,为每类关键业务终点保留具有代表性的可执行路径。
分工也很明确:确定性分析负责提供路径骨架和条件约束;AI 负责把抽象条件展开为具体的业务数据、机构配置和 Mock;人负责确认高风险终点及语义边界。原文以一个同时受请求参数、机构配置和外部返回影响的接口为例,展示了如何从大量路径组合中识别业务终点、压缩候选路径,并生成人可以审查、机器可以执行的场景。
假覆盖:断言 PASS 不等于目标行为发生
实践中出现过这样的情况:AI 生成的用例描述合理,最终断言也能 PASS,但实际执行在前置分支提前结束,目标调用和目标业务终点并未发生。
进一步分析会发现,问题不在断言本身,而在输入、配置和 Mock 的组合没有满足目标路径约束。AI 完成了一个可以通过的用例,却没有完成预期行为的覆盖。因此,有效覆盖不能只检查最终断言,还要同时确认:目标终点是否到达、关键条件是否满足、必要调用是否发生、副作用是否符合预期。只有实际运行证据与目标路径一致,场景才计入有效覆盖。这条规则把“用例执行成功”与“目标行为真实发生”区分开来。
Bubble:把行为一致性拆成可判定的等价约束
Bubble 在相同请求和依赖响应约束下分别回放新旧系统,将行为一致性转化为一组可判定的等价约束:业务终点一致、核心返回语义一致、关键副作用一致、重要 IO 交互可解释。
差异并不直接等于重构错误。空串与 null、时间戳等非确定字段需要
面对几十万行的老系统,AI 重构的难点往往在于能否证明改对了,而不在于生成代码。讲者用一套“双 Loop”方法把老系统行为提取、新系统回放验真和分阶段切流串起来,让重构从“写完”走到“可发布”。
离线复现与真实流量,如何取舍
离线环境便于复现问题、定位差异,但无法覆盖线上真实的请求分布;真实流量最接近生产环境,代价则是要圈定影响范围,并保留随时回退的能力。两者并不冲突,关键是把它们放在交付流程的不同阶段使用。
双 Loop:让 AI 重构不止于“生成代码”
讲者提出一套面向大规模 AI 重构的双 Loop(双循环)方法,把三件事连接起来:从老系统提取既有行为、在新系统上回放验真、上线后分阶段切流。经过这套方法,AI 重构的交付物不再只是代码,而是一个可验证、可发布的完整过程。
覆盖判断:从“用例通过”到“行为真的发生”
传统做法看用例有没有通过,这里的判断标准是目标行为是否真实发生。借助实际执行路径留下的证据,可以识别 AI 生成场景中的两类问题:路径偏移(代码走错了分支)和假覆盖(用例虽然通过,却没有覆盖到目标行为)。再叠加分层的行为等价约束,就能对差异做归因,并作为能否发布的依据。
参会收益
- 理解为什么代码评审、覆盖率和用例数量,都无法单独证明大规模重构的正确性
- 学会以业务终点来组织行为模型,压缩复杂路径的规模、控制场景成本
- 掌握 AI 语义展开的适用边界,以及路径偏移与假覆盖的识别方法
- 掌握新老系统差异的分层判定方式,以及“离线验真 → 真实流量回放 → 分阶段切流”的工程决策框架
同场的其他专题
大会还设有 Loop Engineering、千行百业 Agent 创新实践、Agent 自主进化:从记忆到持续学习、Agent as a Service、Vibe Coding 时代的新质量债、理性驾驭 AI 的 SRE 可靠性工程、金融 AI Native 工程实践:从研发提效到业务破局、AI Infra:算力效率决定规模化落地、AI Native 架构等 20 个专题论坛,届时将有 100 多位来自不同行业、不同企业的资深专家分享一线实践。
时间与票务
QCon 全球软件开发大会·2026(上海站)将于 10 月 22 日—24 日举办,主题是“Harness AI 时代的工程实践”,即从“构建 AI”走向“驾驭 AI”,议题覆盖 AI Native 架构、Agent Runtime、AI Infra、Agent 安全与可观测、Loop Engineering、具身智能与世界模型等方向。
目前购票可享 9 折优惠、立减 680 元,详情可扫码或联系票务经理 18514549229 咨询。

关键要点
- 大规模 AI 重构的验证分两层:离线环境保证可复现,真实流量保证贴近生产,两者配合使用。
- 双 Loop 把“提取旧行为—回放验真—分阶段切流”连接成闭环,重构产出由此从代码扩展到可发布的交付物。
- 覆盖不能只看用例是否通过,要看目标行为是否真的发生;路径证据是识别路径偏移和假覆盖的关键。