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

查看 518|回复 49
tool2dx   
我建议的两种解法,一种是直接把这部分代码封装,当成第三方库扔到 baseline 里面,然后根据需求在里面加点屎;另一种就是完全重写,从业务出发,完全不看这些屎。
mingliao   
@pkoukk OP 这个是工业项目,需求感觉也还好,仅仅是代码乱一点。APP 业务的需求,才是天花乱坠。
mars2023   
@sn0wdr1am 精辟
lasuar   
既然都重写了,那么你应该只需要梳理业务需求,然后结合测试用例重新写一个就好了。
又不是让你重构 🐶
fredweili   
钱够就猛吃,不够就慢慢吃,总会吃完的,反正都得吃。PS: 只吐槽不会凸显你的技术水平多好。
sss15   
借助 copilot 之类的吧
zhu327808   
画图,现在很多在线画图的画布都是无限大的,你就一层一层绕,一边绕一边画就行了
xloger   
我最近接手的项目就是这样,只有一份代码,没有文档,只有一个可用的环境,我的方式是这样的,先理解产品的功能,从功能出发猜测大概是怎么实现的,当然要看的是主流程的功能,把一个整个功能流程了解透,再思考如果是自己做该怎么做
有了上一步的一个梳理带着到底是不是这么实现的,来看代码中的主要流程,先不要关注细节,梳理流程,然后把一整个代码的流程串起来
然后就可以开始解遗留的 bug 了,解 bug 的过程就是了解细节的过程,边解边把一些觉得值得重构的点打上 TODO
再然后就是接新的需求了,新的需求肯定是要改造现有的代码的,那就按自己思路做分层,实在改不动的代码就他妈先包成一个函数,写个自己能懂的函数名字,打上注释能用,不要轻易改动
我现在就是尽量自己的新写的代码就把以前的功能完全重构掉,改不动就封装起来,下层的代码尽量要稳定,上层可以快速迭代
当然屎山就是屎山,不可能一步到位,只能走一步看一步了,也没有时间来完全重写
ps:我这里是一个 golang 的项目,然后被各位大佬硬是写成了 java 的风格,我也是服气的,然后上了他们手撸的依赖注入,导致看代码逻辑都是乱的,你都不知道这个对象是从哪里来的,我的妈呀,头疼
sagaxu   
灵活应用 Copilot ,让 AI 来辅助你理解代码。
然后,要重构或者基于它改代码,重要的思路是:你自己要理清楚整个业务上怎么样的,结合现实中这个业务的流程和代码的实现,整理出一套接口 驱动这个旧代码。
这样里面的具体实现没那么重要了,你可以在不用完全理解里面实现细节的情况下驾驭它,哪怕有问题也能快速定位。
但是,但是哦,如果自己水平欠佳或者梳理到一半凑合了。后人接手你的代码,那观感就是这层山上又叠了一大层......
lanif   
从功能出发,先熟悉这个程序的功能,然后看看需求文档(大概率没有或者出入较大),再自己从零开始设计一个方案,想想看自己开发会怎么做。
然后开始看代码,忽略细节,只到文件或类层级,把几个主干类加上注释,理清脉络,画出一个整体结构来,跟自己设计的方案对比一下,也许这个时候需要修正自己的方案。
接下来就是翻译了,把 A 架构代码翻译到 B 架构。在翻译前,把测试用例准备好,不用很全,覆盖主要功能就行。这个时候再去抠变量名和代码细节,边翻译边加注释。
我重写过很多个零文档的项目,别看代码量唬人,可能很多是复制粘贴重复的,很多是压根儿就没用到。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部