内容提要
企业用Claude Code进行大型代码现代化的六步法:定义目标(升级、转换或重构)、制定验证证书、设定分级审查上线政策、准备环境与合规前提、构建并优化智能体工作流、先小范围试点再全面推广。核心瓶颈已从写代码转向组织协调,需提前达成共识并控制成本。
延伸解读
现代化类型选择:共识比技术更重要
文章将现代化分为升级、转换和重构三类,选择取决于目标。但实际中,生产团队倾向保持行为不变的转换以控制风险,而工程团队和业务方可能希望借机偿还技术债或添加新需求。若未提前达成共识,后续会引发对“正确性”的争论。因此,明确类型虽增加初期摩擦,却能简化整体项目。
证书:自动化验证的核心
证书是一组每个变更必须满足的条件,用于提供变更正确的累积证据。它应能自动检查,以便智能体工作流迭代直至满足或标记人工审查。证书内容取决于目标,通常包括测试通过、覆盖率、性能基准、对抗性审查等。与将审查变更的人员共同制定证书,能提前获得支持,并可能减轻后续审查负担。
分级审查策略:平衡速度与风险
由于智能体产生变更的速度远超人工逐行审查,需要预先商定分级审查路径。按影响范围和智能体置信度分级,关键路径保留完整人工审查。同时,应分析反复出现的标记,从源头修复工作流或证书,而非逐个审查。让领域专家聚焦高风险变更,可有效利用稀缺的专家时间。
成本估算与优化:从试点中学习
现代化成本主要受代码读取量、证书复杂度、测试编写量及并行开发协调影响。在小范围试点中测量令牌使用量,可外推整体成本下限。优化时,将计算密集的验证信号置于廉价检查之后,对机械性工作使用成本更低的模型,而将高级模型用于困难转换和对抗性审查。注意分析重试率,避免多次廉价尝试反而更贵。
Q&A
AI驱动的代码现代化项目通常分为哪几个步骤?
分为六步:1. 定义目标(升级、转换或重构);2. 制定验证证书;3. 设定分级审查上线政策;4. 准备环境与合规前提;5. 构建并优化智能体工作流;6. 先小范围试点再全面推广。
代码现代化有哪三种类型?分别适用于什么场景?
三种类型:升级(同栈版本更新,如C++11到C++20,适用于技术栈没问题但版本落后);转换(跨栈重写但保持行为不变,如COBOL到Java,适用于技术栈是问题而行为可信);重构(在新架构上重新构建并修改行为,适用于需要同时改变行为)。
什么是验证证书?它通常包含哪些检查项?
验证证书是每个现代化变更必须满足的一组条件或测试,用于提供变更正确的累积证据。常见检查项包括:原始测试套件通过、Claude编写的测试通过、测试覆盖率达标、性能基准在约定范围内、独立对抗性审查无阻塞问题、UI无回归、新旧版本相同输入产生相同输出、状态和线格式可往返、在预发环境运行无回归、静态分析和安全扫描无新发现、编译目标构建干净且类型检查通过。
为什么需要分级审查上线政策?它有哪些关键规则?
因为智能体产生变更的速度远快于人工逐diff审查,分级审查上线政策预先设定不同变更的人工审查深度,以在可接受时间内完成现代化。关键规则包括:按影响范围和智能体置信度分级,关键路径保留完整人工审查;对重复出现的标记问题从源头修复;与审查者共同设计输出格式;有效分配SME时间,让他们专注于最高风险层级的变更。
在准备代码现代化时,需要提前做好哪些环境和合规前提?
环境方面:专用远程主机、按证书要求的测试能力、增强证书的证据(如生产遥测、预发并行环境、生产数据回放)。代码库和CI/CD方面:依赖图、依赖处理计划、兼容性检查、代码冻结政策、沟通计划。团队和审查方面:其他团队参与协议、预留审查时间。安全合规方面:经批准的模型访问路径、最小权限访问、清理秘密和PII、变更可追溯、许可证和漏洞检查。
如何构建和优化智能体工作流?
使用Claude Code开发定制的动态工作流,从代码现代化插件开始,将目标、证书、上线政策、代码库、文档等放在文件系统或通过MCP供Claude访问。让SME审查Claude的工作,包括代码库特定技能或提取的规则。通过应用于小部分代码库来优化,SME审查变更、智能体过程和证书证据。当问题出现时,修改工作流而非单个变更。
如何估算代码现代化项目的成本?有哪些优化策略?
成本驱动因素包括:代码库读取与修改的比例、证书的复杂程度、新测试编写和修复量、其他团队合并带来的协调工作。在小部分代码库上完成现代化时测量token使用量,并外推至整个项目,将试点未见的因素视为未知。优化策略:找出消耗token最多的部分并提高效率;将计算密集型验证信号放在更便宜的检查之后;对机械性工作使用Sonnet等平衡模型,对困难转换和对抗性审查使用更智能模型;分析重试率,避免多次廉价尝试比一次昂贵尝试更贵。
在代码现代化过程中,如何管理风险并建立内部共识?
风险降低通常是现代化的主要收益,需考虑不进行现代化的风险(如未修补漏洞、运行时不受支持、工程师减少)。建立内部共识需要领导层设定项目目标和商业案例,这有助于在证书和上线政策中锚定权衡。当利益相关者对变更风险有分歧时,不现代化的风险可作为平衡因素。上线政策最好由高层指令推动,并事先达成一致,使责任共担。