00:00:00让我们探索开发人员如何使用 Claude Code 来现代化 COBOL 代码库。
00:00:05为了演示,我们使用了 AWS 的大型机现代化演示库。
00:00:11这是一个中等规模的信用卡管理系统,包含约 100 个文件,包括 COBOL 程序、数据复制本和 JCL 脚本。
00:00:19第一阶段——发现与文档化 我们的示例 COBOL 代码库几乎没有任何文档。
00:00:25这在遗留代码库中很常见,关键业务逻辑和监管要求都嵌入在无文档的代码中,编写代码的开发人员早已离职,而懂 COBOL 的开发人员难以招聘。
00:00:40我们首先使用 Claude Code 的 /agent 命令创建了一个专门的子代理。
00:00:44这是我们的 COBOL 文档专家和翻译官。
00:00:47子代理可以由 Claude Code 并行调用,它们使用自己的隔离上下文窗口,避免污染主线程。
00:00:56我们启用了思维模式,要求 Claude Code 分析代码库的架构。
00:01:01Claude Code 创建了所有 94 个文件的任务清单,并跟踪其进度,以确保没有文件被处理两次,也没有遗漏。
00:01:09Claude 生成的文档超出了简单的代码注释范围。
00:01:13例如,让我们看看利息计算程序 CBACT04C。
00:01:20它提取了完整的业务工作流程,包括程序如何读取交易类别余额、按账户组查找利率、应用利率回退业务规则,以及更新账户记录。
00:01:33Claude 为每个文件都做了这样的工作,同时还创建了两个纯文本内存文件。
00:01:39Catalog.txt 将 CBACT04C 之类的神秘名称翻译为利息计算器批处理程序。
00:01:48Relationships.txt 使用简单的管道分隔符格式映射每个依赖关系。
00:01:55利用这些索引,Claude 生成了 mermaid 图表——完整的每日批处理工作流程图,显示数据如何从交易输入流向过账、
00:02:06利息计算,最后到客户报表。
00:02:08在这个演示中,Claude Code 连续运行了一小时,起草了 100 多页文档,但 Claude Code 能够自主运行 30 多小时,这里使用的技术可扩展到更大的代码库。
00:02:23第二阶段。
00:02:24迁移和验证。
00:02:26在彻底文档化 COBOL 代码库后,我们要求 Claude 将其核心功能之一迁移到 Java。
00:02:31我们切换到规划模式,以确保 Claude 在编辑文件之前思考整个迁移策略。
00:02:39Claude 分析了曾被称为 CBACT04C 的程序,并识别了复杂的 COBOL 模式,如换行符处理和多文件协调。
00:02:50Claude 为此功能制定了一个包含五个阶段的迁移计划。
00:02:541.
00:02:55创建项目结构。
00:02:562.
00:02:57将数据模型从数据复制本转换为 Java 类。
00:02:593.
00:03:00构建与原始文件格式兼容的 I/O 层。
00:03:044.
00:03:05转换业务逻辑,同时保留 COBOL 特定的行为。
00:03:08最后,创建双测试工具,一个用于原始代码库的 GNU COBOL 3.2.0 版本,另一个用于 Java 17。
00:03:17生成的 Java 代码超越了简单的语法翻译。
00:03:20Claude 创建了具有适当设计模式、错误处理和日志记录的正确 Java 类。
00:03:25这是现代开发团队实际上愿意维护的惯用 Java。
00:03:30接下来是验证,以确保新的 Java 代码与它替代的 COBOL 代码运行方式相同。
00:03:37Claude 创建了多个测试数据文件,并针对原始 COBOL 和新程序进行了运行。
00:03:43验证不仅比较了最终输出,还比较了中间计算、文件写入和数据转换。
00:03:50结果是完美的逐位保真度。
00:03:53每个计算、业务规则和边界情况都被保留了下来。
00:03:57当然,这个演示应用程序远小于你的遗留 COBOL 代码库。
00:04:02但这里使用的所有技术都是可扩展的。
00:04:04Claude Code 将使你的开发人员能够以仅在 12 个月前还不可能的信心和效率来现代化代码库。