#note 总结昨天 2 小时内将 2W 行 Swift 转换成 JavaScript 的经验:
1. 第一次尝试,使用 Spec 驱动,写文档,让 CC 和 Codex 按照任务进行转换。用时整整 5 小时,但转换结果很糟糕,后端逻辑漏了一大坨。
继续让 Codex 继续转换,也于事无补,陷入逻辑极度混乱,代码左右打架,你都能明显感觉到随着任务的执行 Codex 的反应越来越缓慢,就好像老爷车的引擎开始冒烟了。总之,5 小时下来,身心疲惫,比连续打 2 小时羽毛球还累。
2. 第二次尝试,不再使用 Spec 文档驱动,改为让 Codex,将所有文件一比一地翻译成文档。比如,modal.swift 这个文件,翻译后输出 modal.swift.md。文档里注明,函数名,作用,范围,相关,这份代码的运作逻辑。
然后,再输出 Spec 文档,生成任务。此时,Codex 转换变得简单许多,它不再不断阅读源文件,浪费大量的 token。结果是,2小时左右,所有的 Swift 文件都转换完毕,后端逻辑得到比较完整地保留(有一点小问题,但不大),前端细节丢失较多,但基本框架得到了保留。
不管怎么样,新方法完成了这个转换的任务。我觉得这是一个有益的经验,跟大家一起探讨。
1. 第一次尝试,使用 Spec 驱动,写文档,让 CC 和 Codex 按照任务进行转换。用时整整 5 小时,但转换结果很糟糕,后端逻辑漏了一大坨。
继续让 Codex 继续转换,也于事无补,陷入逻辑极度混乱,代码左右打架,你都能明显感觉到随着任务的执行 Codex 的反应越来越缓慢,就好像老爷车的引擎开始冒烟了。总之,5 小时下来,身心疲惫,比连续打 2 小时羽毛球还累。
2. 第二次尝试,不再使用 Spec 文档驱动,改为让 Codex,将所有文件一比一地翻译成文档。比如,modal.swift 这个文件,翻译后输出 modal.swift.md。文档里注明,函数名,作用,范围,相关,这份代码的运作逻辑。
然后,再输出 Spec 文档,生成任务。此时,Codex 转换变得简单许多,它不再不断阅读源文件,浪费大量的 token。结果是,2小时左右,所有的 Swift 文件都转换完毕,后端逻辑得到比较完整地保留(有一点小问题,但不大),前端细节丢失较多,但基本框架得到了保留。
不管怎么样,新方法完成了这个转换的任务。我觉得这是一个有益的经验,跟大家一起探讨。