你们都是怎么阅读同事遗留的屎山代码的?

2023-10-17 20:16:16 +08:00
 jokechen

这周进了一个新项目,接受了以前同事遗留的代码。我所接手的代码都是一些简单的业务操作,比如账单的生成、合同的签订等。这些代码包含但不限于以下特征,让我读起来非常挠头:

。。。

是你的话该如何读这些代码呢?

我曾经试着让 chatgpt 帮我阅读梳理,可能我的 prompt 写的有问题,他也很难帮我将整体逻辑梳理清楚。

请问您有什么好的建议或者 prompt ?

2866 次点击
所在节点    职场话题
39 条回复
swuzjb
2023-10-17 20:17:54 +08:00
能不读就不读。
chuck1in
2023-10-17 20:18:50 +08:00
听起来像是一份年薪百万的工作
enchilada2020
2023-10-17 20:36:32 +08:00
我目前的感受就是没办法 六字真言贴显示器旁边 然后硬着头皮一点点 debug 一点点看 尤其是祖传 Java 屎山表达能力差得一比 写了十来行只干了一件事 大部分 if 都在判断空指针 但凡用一下 optional 和 stream 也不至于那么恶心的 就是没有 就硬 for each+if
wwlzz
2023-10-17 20:38:46 +08:00
不用全部理解,按需求/bug 来,加断点调试,添加日志,测试用例等
jokechen
2023-10-17 20:40:10 +08:00
还有一个问题,有些接口的入参能有 100 多个
enchilada2020
2023-10-17 20:44:40 +08:00
@jokechen 真猛 突然觉得我手头的屎山靓丽了许多
zzNucker
2023-10-17 20:45:22 +08:00
100 多个入参也太离谱了
Kirscheis
2023-10-17 21:07:52 +08:00
我这有一堆前辈留下的无文档 LabView 程序,目前谁都看不懂,所以我选择整个封装当盲盒用,新需求另建山头。。。
zjp
2023-10-17 21:21:40 +08:00
看正文感觉还好啊,硬看就是了
看到#5 ,对不起,超出能力范围了
sadfQED2
2023-10-17 21:27:03 +08:00
断点调试,一行一行的跟一遍就懂了。
darkengine
2023-10-17 21:43:16 +08:00
不要读懂他, 要改的时候各种绕路, 例如在上边包一层, 这样就能得到一个更大的屎山了.
NothingExist
2023-10-17 21:47:42 +08:00
删库重写:)
jonty
2023-10-17 21:59:42 +08:00
@zzNucker #7 这不是屎山,这已经是特色了
enchilada2020
2023-10-17 22:21:49 +08:00
@sadfQED2 调用栈太深的断点调试其实也不理想 复杂点的只过一遍肯定不够 正手来一个 step over 可能一下子跳了一大段逻辑 反手 step into 个几次回来都找不到北
dddd1919
2023-10-17 22:28:27 +08:00
@jokechen 人类早期训练 AIGC ?
HUZHUANGZHUANG
2023-10-17 23:46:05 +08:00
有时候只能本人读懂的原因是存在一些不再需求文档上的代码
v2eb
2023-10-17 23:50:13 +08:00
先理解业务吧, 有流程图啥的就好了。
x86
2023-10-17 23:58:24 +08:00
这种写法叫人工混淆加密,一般公司顶梁柱才写的出,优点是别人难以看懂接盘顶替自己...
enchilada2020
2023-10-18 00:15:46 +08:00
@x86 有没有另外的可能 比如他自己都维护不下去 只好先甩手跑路了…
zhangjuanzi
2023-10-18 08:51:49 +08:00
不会仔细读,大概了解一下,碰到需求再定位到要改的地方改了就完事了,也不会想着去优化。而且我也挺喜欢这种代码的,在这种代码上做需求一般会给的时间多点,自己快速做完剩下的时间就做别的。

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

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

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

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

© 2021 V2EX