SwitchyAgain 开发杂谈(三)小尝

在初试失败后,心情沮丧。这种大项目想要快速实现现代化,看来并不现实。如果说只能慢慢来,又担心要耗费太多的时间。我想要不还是降低期待吧,未必真的可以做到,但可以去尝试。

不一定就要做到很好甚至最好,完全当成是一种兴趣。本来也并不是一种强制性的,一种被迫要去做的事情。再者,AI 实际上能起到多大的作用,还需要再多琢磨琢磨。我在这个过程中又需要投入多少精力,实际需要参与到什么程度,也都再仔细考虑下。

所以在失败后,有好几天都没有实质地在推进这个项目。大部分时间都是在思考,这件事情到底应该怎么做才好。去参考了很多修改版,如果说它们本来就已经符合我的需求了,那么我实在没有动力去做这件事情,生活本来就不再有那么宽裕的时间,想要做的话必然会牺牲其他的一些东西。

首先还是对 AI 的定位。哪怕讨论再热火朝天,它仍然还是 AI,仍然还是需要与提示词配合使用,即使目标一致,不同的提示词,未必最后的结果都一样。它本质上仍然是辅助工具,使用者的水平,很大程度上也决定了最后的结果。

其次就是将目标无限细分。虽然设定了最终目标,但不能期待 AI 能够直接做到。最终目标分成几个大块,每个大块又分成中等的目标,再从中等的目标划分成若干小目标。这和原来的项目规划并无区别,只是会增加 AI 的参与程度,进而提高工作效率而已。

最后就是对原项目的把握。原本的设想还是过于理想化,觉得原项目是一个很完善的项目,但其实本身就有很多没完善的地方,数不清的暗坑。即使有 AI 来辅助帮忙,都未必就能完美解决,尤其是想要保留一些原项目的特性,但这对于 AI 来说未必就觉得需要保留,如果不特别指出,AI 自动去做成流行的设计,但我并不喜欢这样,华丽的代价是对性能的需求的提高。我想要足够小又不需要太高的消耗。

那么,在明确了这几点后,我更加确定要走所制定的 TypeScript + React 路线。只是不能急功近利,必须要慢慢来。也不给自己制定所谓的最后期限,就靠着兴趣爱好来做,毕竟只是一个个人项目而已,不应该给自己太大的压力。

于是重新把 SwitchyOmega 的源代码克隆到本地。就先做一个很小的但又很重要的目标,实现对 MV3 的兼容设计。并且在开始之前,严格参考现实中的开发流程,必须要先讨论确定好最终的方案,才开始工作。只是对象从人变成了 AI。如果过程中有其他未考虑到的情况,就需要 AI 主动停下而不是自己做主,重复去讨论确定方案,才能继续。

这样的一套流程确定好了之后,整个 AI 编程的过程就变得没那么难受了。AI 对我的需求有理解上的偏差,那么就要及时修正;对修改的过程中遇到的突发状况,能自己停下来等我确认是继续还是临时先处理突发事件。具体到对 MV3 的兼容设计来说,就是一些 MV2 到 MV3 的更新和移除。

这样的一个目标真的足够用来做实验,最后的效果也是令人满意。基本上就能够在 Chrome 上使用了,虽然仍然会有些问题。实际修改的代码并不多,几百行而已,交给 AI 来做也只是几个小时就完成了。到此为止,如果说只要能用就行,那已足够,可以不必继续深入,出问题就小修小改。但我想还是一不做二不休,彻底大改造更痛快。

(完)