内容提要
作者利用Codex将丢失的Electron绘图应用的编译代码逆向为TypeScript源代码,过程包括提取模块结构、逐个恢复模块、建立外部记忆系统、组装应用及自动修复错误。五天后,大部分功能恢复,尽管仍有一些运行时错误。作者总结了使用Codex的经验,强调计划、进度更新和验证的重要性。
关键要点
-
作者利用Codex将丢失的Electron绘图应用的编译代码逆向为TypeScript源代码。
-
提取模块结构是第一步,从混淆的代码中提取JS和CSS文件。
-
Codex成功分析了主要JS文件并列出了模块,尽管原始模块名称已丢失。
-
在恢复过程中,Codex希望验证生成的代码是否能运行,导致了问题。
-
通过添加严格规则,Codex停止关注编译错误,开始逐个恢复模块。
-
Codex的上下文窗口有限,新的会话无法记住之前的背景。
-
作者建立了一个外部记忆系统,以便Codex能继续之前的工作。
-
所有模块恢复为TypeScript文件后,下一步是将它们组装成一个实际的Electron应用。
-
Codex自动修复编译错误,并通过运行npm start测试应用,找到问题并修复。
-
经过五天,作者成功恢复了一个可以运行的Electron应用,尽管仍有一些运行时错误。
-
作者总结了使用Codex的经验,强调计划、进度更新和验证的重要性。
延伸问答
如何利用Codex恢复丢失的源代码?
通过提取模块结构、逐个恢复模块、建立外部记忆系统、组装应用及自动修复错误,最终在五天内恢复了丢失的源代码。
在恢复过程中遇到了哪些问题?
遇到的问题包括Codex想要验证代码是否能运行,导致跳过不必要的部分,以及Codex的上下文窗口有限,无法记住之前的背景。
作者是如何解决Codex的上下文窗口限制的?
作者建立了一个外部记忆系统,通过描述任务背景和跟踪恢复计划,确保每次新会话都能继续之前的工作。
Codex在恢复模块时采取了什么策略?
Codex逐个恢复模块,并在恢复过程中不关注编译错误,以确保完整恢复。
恢复后的应用功能如何?
恢复后的Electron应用大部分功能正常,但仍存在一些运行时错误和边缘案例的不同表现。
作者从使用Codex中学到了什么?
作者总结了计划和检查清单的重要性,强调了验证和明确指示的重要性,以及Codex需要外部循环机制来处理长时间任务。