基于AI进行项目重构的工作流

最近我在频繁地进行项目的优化重构操作,在这个过程中积累了一些理解项目和分析项目的经验,这里简单地记录一下作为今后的参考。

一开始的时候,我们可能对于项目存在的问题以及该怎么去优化是比较模糊的。只是下意识地感觉到这个项目设计上不合理,存在一些问题,但是没有形成一个具体的想法和方案策略。这个时候我们可以先让AI去对项目进行一个分析,我们可以提供一些比较模糊、比较宽泛的提示词,比如说架构上的内容、设计上的内容、数据结构设计上的内容、逻辑上的内容等等,让AI去分析。当然也可以基于一些软件开发的原则,比如说SOLID原则,或者一些复杂度的原则等等,这样的话模型能够先给我们分析出来一个大致的内容,引导我们进行进一步的思考,也让我们对于项目的问题有了更细致一些的认知。这一步往往能让我们发现一些在我们的认知之外的项目问题,有助于我们去扩展思维。

这里有一个经验之谈。若让我坐下来直接去思考项目中的一些问题,往往需要时间在脑海中逐步形成思路;有时会立刻产生灵感,有时却需要反复琢磨。于是我总结出一个办法:每天上下班时,在开车途中用语音把一些想法记录下来。比如对项目可能存在的问题、潜在分析维度等,我会通过语音记录下来。等到回到家里或公司时,再把这些语音整理成可用于分析的需求。这个方法非常有效,因为它既充分利用了上下班的时间,又因为是边想边记录,所获得的想法往往更多、更全面。

接下来我们就可以针对分析出来的内容逐个地去和AI对话,去深入地做一些细节上的分析,因为上一步分析的东西可能会比较泛,那到了这一步的话,我们就有一些更加明确的方向了。比如说可能我们会觉得这个项目的主题机制是不合理的,那我们就可以指导AI进行更细粒度的分析,比如说主题的注册机制是不是不合理,或者说是否存在重复的主题,或者这个主题该怎么处理等,让AI去做一些更细致的分析。

再往下一步,我们就可以让AI基于上述分析的内容去做规划了。当然上面分析的这些内容我们都会把它放到一个统一的目录下,那接下来就让AI去读取这个目录下的文档,并结合程序的代码去帮我们制定一个重构优化改进的优先级和任务列表,也就是一个todo list,然后我们再进行一次审核以后,就可以让AI去执行真正的代码优化工作了。

当然这里有一个要注意的地方,就是让AI分析的、让他生成的每一个子任务,我们都要让他对这个任务给出核心的示例代码以及提供测试的方式,这样的话可以让AI在后续重构的过程中自己去进行校验和测试,减少人的介入,同时因为有测试用例的存在也能让它生成的内容会更加的准确。

下一步就是执行。在执行阶段,因为最近我有GPT的token非常多,100万个根本用不完,所以我可以很奢侈地去浪费这些token,因此我就提了两点。第一,调用尽可能多的agent来完成该任务,并生成详细的文档。第二,在任务完成以后先进行质检,根据质检结果再进行优化操作,如此循环至少三次,方可视为完成这项任务。这当然会造成极大的浪费,但是因为我的token足够多,而且到期就失效了,所以也无所谓了。这样让他先经过几轮质检的话,可以减少我们人为的一些工作量,因为确实这个检查的过程中还是能发现一些问题的,这个在我之前去修正一些bug的时候有验证过。

到了这一步,就会经过非常长的时间,多的时候甚至是几个小时。整改完以后,我们就可以人为地参与进去验证修改的结果是否正确,然后去针对性地进行一些修正。