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

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

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

。。。

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

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

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

2866 次点击
所在节点    职场话题
39 条回复
8355
2023-10-18 09:08:01 +08:00
用常规运行结果反推,不要读全部,以最小的改动代价完成本次需求,能不动就不动。
ytmsdy
2023-10-18 09:16:49 +08:00
不看!反正看了也看不懂,就算看懂了也不敢去改。
把业务了解清楚就好了,如果出现 bug ,直接 debug 进入调试模式。针对 bug 的场景用 if 特殊处理,其他部分不动!
处理屎山项目的原则就是,能不动就不动,就算要动也只加,不删除。
ma836323493
2023-10-18 09:17:25 +08:00
抽丝剥茧慢慢来, 前人为了省事打了各种补丁, 我视情况而定, 要有工匠精神
COOOOOOde
2023-10-18 09:25:13 +08:00
不读, 当成黑盒。
nenseso
2023-10-18 10:01:04 +08:00
我觉得要有能力改屎山代码,首先要对业务非常熟悉。
xxiaowangwang
2023-10-18 10:10:42 +08:00
只要钱到位,屎壳郎就是我。
haitaoli
2023-10-18 10:12:54 +08:00
我也一样 虽然没你手里这么屎 不过我太菜了 也是几个同事断断续续的写了好几年 一行注释都没有 而且之前写这个的人已经离职的差不多了 一点都不想看 摆烂了
ZGame
2023-10-18 10:14:19 +08:00
厌恶屎山,接受屎山,理解屎山,成为屎山
haitaoli
2023-10-18 10:15:48 +08:00
@haitaoli 而且交给我活的时候 也没有需求 之前这一块是和另一个功能耦合在一块的 现在让我从里面解出来 差不多就是重写一遍吧 现在直接卡在读代码这一步 读不懂代码 就不知道需求 不知道需求 就没法写
zw1one
2023-10-18 10:19:22 +08:00
告诉领导和产品,这玩意儿看不了,一改全是坑,挖坑的人全跑了,重写吧。
woshihgs
2023-10-18 10:29:18 +08:00
@ZGame #28 超越屎山
bfdh
2023-10-18 10:30:29 +08:00
目前没有这个烦恼,因为我就是那个写屎山代码,然后交给同事的人。

回到楼主问题,我的做法一般是先问清楚业务,从业务反推代码。
jokechen
2023-10-18 10:38:48 +08:00
@bfdh 比较麻烦的就是懂业务的人也全跑了,也就是说我们这边好多产品经理都是新接手的。昨天产品经理有一个需求不太明白,找到我说“兄弟,你从代码里帮我看下,这部分需求实现过没?”
---
今天我已经有些佛性了,因为开始慢慢的有测试找我提一些问题了。
这样我能跟着测试的逻辑一起熟悉代码。。。。
beisilu
2023-10-18 10:42:46 +08:00
理论上跑起来加断点慢慢来是可以熟悉的。
但是实际情况是跑都跑不起来
iOCZ
2023-10-18 10:54:41 +08:00
@jokechen 提交表单是字段比较多的一种可能,但是要填 100 多个字段也是没有用户体验了。假如说要上报设备信息,字段很多,那完全可以一个 JSON 字段搞定。
sankooc
2023-10-18 16:48:58 +08:00
我以前接手过一个 callback 地狱的项目 那一个酸爽
imqiyue
2023-10-18 17:06:54 +08:00
边骂边看…
abelmakihara
2023-10-20 11:41:11 +08:00
之前接过的无非就是东拆西拆让它的可读性变强 可以复用
动里面逻辑那是万万不敢的 最多就是继续加 ifelse
unregister
364 天前
我的工资就是我的精神损失费

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

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

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

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

© 2021 V2EX