设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
影视
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
程序员
›
如何强行吃透一座屎山代码?
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
怎么看待 [十点前下班没必要来深圳] 的说法
›
看了《再见爱人》气的晚上睡不着
›
去医院看发烧,检查花了 640
›
点外卖食物中毒,但是太无奈了
›
大家怎么看待 cg 这件事情
今日热议主题
你们平时用高德地图还是百度地图?
支持虚拟线程的 TCP 服务框架?
现在经济这么差的么
我也出一个 7 位数 QQ 号, ABC
每日一贴:无限收 88VIP 芒果/优酷会员:36
出一个 Surge Mac 5 空位一个
迫 于 国行 switch 马上要停服运营,大家能
做一个自己的“朋友圈”APP
一个面向区块链&Web3 开发者的导航站
断崖式清闲
如何强行吃透一座屎山代码?
qwerthhusn
· 2024-9-14 09:34:10 · 891 次点击
领导叫我把一套代码的逻辑吃透,重写合入到另外一个 baseline 项目,但是写那个代码的人水平是真的次,应该是刚毕业的,都没咋写过代码就直接上手项目。(我们现在在做工业上位机项目,都是现场开发功能的,没有代码质量管理)。
这个成为屎山有点夸张了,顶多是一个屎堆,但是味儿绝对正点。
* 代码没任何注释
* 到处都是类级别的变量
* 变量和函数和类都是随意起名字 id ,根据名字完全看不出来这个 identifier 是干嘛的,需要去看引用的地方才能看出来,但是有的引用层次关系网异常复杂,绕几下都忘记我要看的是哪个变量了。
* 手拼 JSON ,Split 拆 JSON 等这种操作到处都是。
* 巨无霸代码,所有东西写在一起,有好几个 10000+行数的代码文件。
虽然我工作这么多年也见过非常多的屎山项目,以前做互联网后端,微服务兴起之前,我见到过比这大得多的多的屎山代码,全量编译都能编译个一二十分钟的都有。但是以前是只是在项目上再加点料就行了,而现在要做的是把整个项目吃透,我该怎么办?有没有啥好的策略?
PS:跑路不能算是一个好策略,我在看这坨代码的时候晕头转向,满脑子都在想着跑路,但是现在工作太难找了,经历过后疫情的裁员后找工作从希望到失望到绝望的感觉,我宁愿继续啃这坨代码。
举报
·
891 次点击
登录
注册
站外分享
微信扫一扫
QQ分享
微博分享
豆瓣分享
复制链接
显示全部
|
最早评论
94 条回复
95#
ming159
小成
2024-9-19 09:09:47
不要扣细节,不要扣细节. 你应该反向思考一下,这么多代码他是咋记住的? 他一定不是靠死记硬背的! 一定有个超级简单而清晰的主脉络.
1. 从实际完成的功能上入手先了解这个软件实现了什么功能.
2. 数据读取从哪里开始,读完之后做了什么处理? 处理完之后与设备回写了什么样的数据
3. 处理的时候,有什么特殊情况? 你说的类级别的变量,我猜是各种处理逻辑下的状态标志变量.
另外工业上位机软件的特点:也比较简单 从设备读取数据,针对数据做处理,处理完之后回写给设备响应值. 再加上人机交互的逻辑.
94#
fuckshiter
小成
2024-9-18 16:30:25
给屎山写测试,然后重构?
93#
windyboy
小成
2024-9-18 11:24:00
GPT 解读一下代码,然后重构,其实并不是很麻烦
92#
originals
小成
2024-9-18 09:12:08
等有 bug 了再看看,bug 驱动式学习
91#
daimiaopeng
小成
2024-9-18 08:27:58
问 chatgpt
90#
honus
小成
2024-9-17 22:19:47
时间 重构,靠这个读透了一份屎山代码
89#
janus77
小成
2024-9-16 20:50:13
吃透不太可能,我一直坚持的理念就是屎山不是一个人写出来的,是多人合作的情况下才会出现的,所以只要是多人合作,那必须就有信息不对称的情况,没有一个人可以通晓全部,哪怕是原作者也不行,因为原作者都只是其中一部分功能或者一部分时期的开发者。
但是通晓一部分功能点是可以做到的,无非就是硬啃呗
88#
Flyfish233
小成
2024-9-16 18:21:47
有 AI 都不一定可行,有个几年前的加密库用了十几年前的另一个库,全网只有它这唯一实现,虽然开源,几乎没几行注释,后者连测试都没有,现在第一个库都没怎么看懂逻辑,由于代码冗长,AI 很难起比较大的作用,copilot 乱说,我从 ChatGPT 刚开始就在使用,有一定 prompt engineering 积累,但实在搞不定,加上不是太重要,已经搁置等死
87#
piero66
小成
2024-9-15 10:37:11
让 ai 线帮你加一遍注释
86#
Nothing9527
小成
2024-9-15 08:50:41
工业上位机领域的代码屎山多很正常, 很多时候要出差到甲方工厂根据现场调试代码, 大部分时候都工期很急, 基本都是想到啥就写啥.
建议:
1. 找个代码架构视觉化工具, 比如 understand, 如果你是.Net 的话, VisualStudio 也有个生成代码视觉树的功能, 把各个模块之间的关系理清楚, 一开始不要死抠细节
2. 模块间关系搞清楚之后, 再尝试理解模块的运行逻辑
3. 一个个模块合并到 baseline 项目中, 有条调机测试的话就调机测试
下一页 »
1
2
3
4
5
6
7
8
9
10
/ 10 页
下一页
返回顶部