如何强行吃透一座屎山代码?

查看 632|回复 49
meeop   
分成一个个小的部分丢给 chatgpt
7gugu   
1 把所有代码喂给 ai
2 让 ai 梳理:
请帮我梳理所有业务逻辑,梳理文档
请帮我梳理所有上下游依赖
请帮我梳理所有方法调用链和相关逻辑
3 重构
请帮我重构整个项目,按照 xx 规范 xx 结构重写项目
看代码量,数千行的 cursor 应该就能做到了,更多代码量暂时不能这么干,但也快了
whp1473   
先从画流程图开始,把整个项目的流程梳理清楚,不然重构都无从下手
whp1473   
1 、可以先读完整的产品设计,然后自己先设计一套
2 、给核心接口写单元测试,以及 Debug 代码流程
3 、在这个过程中完善自己那套设计的细节
4 、输入输出保持不变,重写所有方法的逻辑
5 、执行所有单元测试通过
6 、编写历史数据迁移脚本
7 、提交给测试进行回归测试
oncethink   
@whp1473 核心逻辑就是面向单测重构,一本书里专门讲了,这种是最保险的,缺点就是成本比较高
cccvno1   
别光想着和代码硬刚,一定要和领导讲清楚重构这些系统的难度,确定要让意识到不是你能力不行,而是重构有这些问题的旧系统,对任何技术水平的开发者都有难度;
第二是用 AI 来梳理代码,不要想着直接用 AI 重构,而是先用 AI 大概解读一下代码的功能,当前的 AI 还是解释能力强于重构能力。
楼上提到用 AI 直接梳理依赖关系目前还不现实,但是你可以用 AI 来写一些代码依赖的分析脚本,在这些脚本的加持下增进对代码的理解。
oncethink   
@sagaxu [可能很多是复制粘贴重复的,很多是压根儿就没用到] 太对味了
darkengine   
还有楼上提到的梳理数据的思路也很好,采用滑铁卢风格理清整个系统的数据转换比理清楚代码行为更容易增强对系统的理解。
oncethink   
完全看不出来这个 identifier 是干嘛的
-------
看懂一个 identifier 之后,马上用一个合理的名字把它换掉,记得使用 IDE 的 rename 功能(千万不要全局替换!!)。
fredweili   
另外你可以考虑用使用一些代码的复杂度计算工具,例如看看循环复杂度,代码的不稳定度,然后从循环复杂度最低的函数开始看起,从易到难,然后再去重构哪些循环复杂度高的代码。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部