用代理 AI 解决技术债务 - 使用 AWS Transform Custom 进行大规模代码革新
讲解如何使用 AWS Transform Custom 解决技术债务。介绍以自然语言定义转换、对大规模代码库批量应用以及质量验证的自动化。
技术债务的积累与现代化的障碍
在软件开发的一线,框架版本升级、替换已弃用的 API、统一编码规范等技术债务的解决往往被推迟。即使每处变更都不大,手动完成分散在数千个文件中的同类修改也需要巨大的工作量,遗漏修改和回归缺陷的风险也会升高。基于正则表达式的批量替换无法处理语法上下文,可能会发生错误的转换。基于 AST(抽象语法树)的工具(jscodeshift、ts-morph 等)虽然准确,但编写转换规则需要编程技能,而支持企业特有的模式需要单独开发。AWS Transform Custom 是一项用自然语言定义转换规则、由代理 AI 在理解代码上下文之后大规模应用这些规则的服务。
用自然语言定义并执行转换
在 AWS Transform Custom 中,转换规则用自然语言编写。例如,给出“将 React 的类组件转换为函数组件,并把 setState 替换为 useState 钩子”之类的指示。“把对 axios 的直接调用改为经由公共的 API 客户端封装”“将所有 console.log 替换为结构化日志库(winston)的调用”等指示也属于此类。代理 AI 会结合代码的上下文执行转换。在 CLI 中可以以交互方式定义、测试和执行转换,并能在 Web 应用程序中查看转换的进度。转换针对本地代码库执行,转换后的代码会提交到新的 Git 分支,因此便于审查差异。
大规模应用与质量验证
Transform Custom 的特点是,即使面对多个代码库,也可以应用一致的转换。手动重构时,每位开发者的修改往往会有细微差异,而使用同一个转换定义进行批量转换,容易减少修改上的差异。在转换过程中,会使用指定的构建和验证命令来检查代码。验证结果也会用于持续学习,并带来后续转换质量的改善。也可以定义针对企业特有框架和内部库的转换。例如,可以用自然语言定义“将内部认证库 v2 的 API 迁移到 v3”“把旧版 ORM 的调用替换为新的存储库模式”等通用工具难以处理的自定义转换。
Transform Custom 的定价
Transform Custom 的定价是基于转换作业执行时间的按量计费。成本会根据要转换的文件数和代码的复杂程度而变化。在对大规模代码库进行批量转换时,采用分阶段的方法管理成本风险:先在小规模的子集上验证转换质量,确认能得到预期的结果后再应用到整体。与手动修改的工作量(数名工程师 × 数个月)相比,使用 Transform Custom 自动转换有时可以减少工作量和周期。
技术债务对业务的影响
技术债务是指权宜之计的实现和过时的设计层层累积、妨碍后续开发的状态。债务膨胀后,新增功能会耗费时间,细微的变更也会开始引发意想不到的缺陷。对旧技术的依赖会使招募能够处理这些技术的人才变得困难,也会提高安全方面的风险。结果是开发速度下降,业务的敏捷性受损。技术债务会作为难以察觉的成本拖累业务,因此不放任不管、有计划地加以解决,对于保持竞争力十分重要。
分阶段解决债务的方法
试图一次性解决全部技术债务并不现实。明智的做法是排定优先级、分阶段推进。首先,按照妨碍开发的程度和风险的大小评估债务,从影响大的部分着手。如果利用代理式的转换工具,可以高效地推进对大量代码的例行革新,但始终会对转换结果进行验证。不是一次改变全部,而是划定影响范围进行改进,并一边衡量效果一边推进。通过持续地一点一点偿还债务,可以在不中断开发的情况下,使代码库逐步接近健康的状态。
总结 - Transform Custom 的利用指南
AWS Transform Custom 是一项以基于自然语言的代理 AI 加速解决技术债务的服务。它适合对大规模代码库进行一致的转换,例如框架迁移、API 版本升级、统一编码规范等。建议先从影响范围小的转换(例如替换已弃用的方法)开始尝试,在确认 AI 的转换精度之后,再分阶段应用到更复杂的转换(例如框架迁移)。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。