V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qwerthhusn
V2EX  ›  程序员

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

  •  1
     
  •   qwerthhusn · 105 天前 · 10991 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。
    领导叫我把一套代码的逻辑吃透,重写合入到另外一个 baseline 项目,但是写那个代码的人水平是真的次,应该是刚毕业的,都没咋写过代码就直接上手项目。(我们现在在做工业上位机项目,都是现场开发功能的,没有代码质量管理)。

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

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

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

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