V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qwerthhusn
V2EX  ›  程序员

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

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

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

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

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

    PS:跑路不能算是一个好策略,我在看这坨代码的时候晕头转向,满脑子都在想着跑路,但是现在工作太难找了,经历过后疫情的裁员后找工作从希望到失望到绝望的感觉,我宁愿继续啃这坨代码。
    104 条回复    2024-09-19 09:09:47 +08:00
    1  2  
    originals
        101
    originals  
       1 天前
    等有 bug 了再看看,bug 驱动式学习
    windyboy
        102
    windyboy  
       1 天前
    GPT 解读一下代码,然后重构,其实并不是很麻烦
    fuckshiter
        103
    fuckshiter  
       1 天前
    给屎山写测试,然后重构?
    ming159
        104
    ming159  
       21 小时 7 分钟前
    不要扣细节,不要扣细节. 你应该反向思考一下,这么多代码他是咋记住的? 他一定不是靠死记硬背的! 一定有个超级简单而清晰的主脉络.
    1. 从实际完成的功能上入手先了解这个软件实现了什么功能.
    2. 数据读取从哪里开始,读完之后做了什么处理? 处理完之后与设备回写了什么样的数据
    3. 处理的时候,有什么特殊情况? 你说的类级别的变量,我猜是各种处理逻辑下的状态标志变量.
    另外工业上位机软件的特点:也比较简单 从设备读取数据,针对数据做处理,处理完之后回写给设备响应值. 再加上人机交互的逻辑.
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1003 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:17 · PVG 06:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.