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

5 天前
 qwerthhusn
领导叫我把一套代码的逻辑吃透,重写合入到另外一个 baseline 项目,但是写那个代码的人水平是真的次,应该是刚毕业的,都没咋写过代码就直接上手项目。(我们现在在做工业上位机项目,都是现场开发功能的,没有代码质量管理)。

这个成为屎山有点夸张了,顶多是一个屎堆,但是味儿绝对正点。

* 代码没任何注释
* 到处都是类级别的变量
* 变量和函数和类都是随意起名字 id ,根据名字完全看不出来这个 identifier 是干嘛的,需要去看引用的地方才能看出来,但是有的引用层次关系网异常复杂,绕几下都忘记我要看的是哪个变量了。
* 手拼 JSON ,Split 拆 JSON 等这种操作到处都是。
* 巨无霸代码,所有东西写在一起,有好几个 10000+行数的代码文件。

虽然我工作这么多年也见过非常多的屎山项目,以前做互联网后端,微服务兴起之前,我见到过比这大得多的多的屎山代码,全量编译都能编译个一二十分钟的都有。但是以前是只是在项目上再加点料就行了,而现在要做的是把整个项目吃透,我该怎么办?有没有啥好的策略?

PS:跑路不能算是一个好策略,我在看这坨代码的时候晕头转向,满脑子都在想着跑路,但是现在工作太难找了,经历过后疫情的裁员后找工作从希望到失望到绝望的感觉,我宁愿继续啃这坨代码。
8616 次点击
所在节点    程序员
104 条回复
auhah
5 天前
先往里拉点屎融入屎山就好了

融的多了就知道怎么改了

一点点改
lyxxxh2
5 天前
既然是刚毕业的,项目能有多复杂。
理解需求,直接重构。
STillSB
5 天前
尝试下借助 AI 的力量
prosgtsr
5 天前
拉个分支,重构一下来理解,然后再回头来改原先的分支
crocoBaby
5 天前
直接加自己的屎山就好了,之前的屎山我都是不管的,只要功能需求能实现就行
fregie
5 天前
能吃透的就不叫屎山
Jinnrry
5 天前
找产品要产品文档,然后直接重构,不看代码
重构完再找测试要测试用例,跑一遍搞定
cccvno1
5 天前
这种项目先不要去关注代码细节,先找到各个操作的输入输出理清业务会简单很多
reallycool
5 天前
举个例子,怎么吃透一个人的武功,你比他强,吃透就很简单,你不如他,那就觉得和屎一样难理解
XiaoXiaoMagician
5 天前
为什么喜欢隔这吃屎呢?都定屎山了,要么搅乱,要么别管,让后你自己拉坨新的,你为什么要去研究怎么吃透.......
zhangeric
5 天前
用 vs 开发的话,可以用 vs 自带的分析工具先分析一下.
rossroma
5 天前
借助 AI 吧,最近都在吹 cursor ,你要么装一个试试
rossroma
5 天前
可以看下这篇使用 cursor 感受的文章: https://mp.weixin.qq.com/s/shmpkeH_FmZ53GZDpKimQw
willchen
5 天前
别想着一口气吃透了 写一块看一块 慢慢打补丁吧
ytmsdy
5 天前
只能借助 AI ,一个函数一个函数拆解了。让 AI 给你写注释,然后你快速看一下,大概那些功能在那些函数里面。
你如果要新增功能的话,单独开新的问题,单独写。
xuelang
5 天前
如果能知道代码的功能,比如有配套测试的话,干脆让 AI 重构一下
zh584728
5 天前
吃不透的,用 AI 看一下,能用的就用,不能用的就重新写
lightjiao
5 天前
写测试用例,花时间,一点点重构
guanzhangzhang
5 天前
先尝试看看几个重要功能测试正常不,看那块大概逻辑和产品文档一致,看不下去那块代码就整个重构得了
LitterGopher
5 天前
如果是我的话我不会从代码入手,而是从业务入手。两个原因:

1. 旧代码中指不定存在一些不管你水平如何都要加个 if 的那种被迫垃圾的代码,而且有些情况不是很好判断具体是水平问题还是业务要求,别一不小心 “优化” 掉了。
2. 代码本来就服务于业务,更好的了解业务才能明白整个代码,而且即便代码看不下去想要从写也能有的放矢。尤其是对于整体代码逻辑的构建(代码框架)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1072834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX