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

求助: 如何快速读懂消化已有的超大型项目

  •  
  •   Gabrielle70 · 68 天前 · 2465 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司有个历史项目需要维护及增加新功能, 前端 react, 微前端. 后端 nestjs , 微服务.

    该项目规模宏大, 有 N 多模块, 配置复杂, 有些模组还是动态创建和销毁的.

    我需要短期内读懂和消化, 并在这基础上开发新功能.

    如何快速读懂消化这种超大型的项目?

    谢谢

    11 条回复    2024-10-19 14:34:40 +08:00
    yekern
        1
    yekern  
       68 天前
    只要了解配置读取,项目启动 基本就 OK 因为你是要在这基础上开发新功能而不是在原项目上修改功能,随着新需求的开发,慢慢自然就了解项目了.

    不像我这边,最近接手了 java 大项目各种配置各种三方生态,要在短期内接手了解,并且要在原有的基础上修改和新增需求,

    简直脑壳疼, 每次顺代码业务逻辑的时候都想跑,而且代码还没注释, 用通义灵码每个方法点生成注释将就着看.太难了
    mumbler
        2
    mumbler  
       68 天前
    用 cursor 打开整个工程文件夹,ctrl+i 让 AI 分析一下,告诉你系统是如何工作的
    alphaControler
        3
    alphaControler  
       68 天前 via Android   ❤️ 1
    思维导图:
    后端,基于 API 接口,对应每一个文件,后面再扩展到每一个对象的功能,列出来。
    前端:基于界面,对应每一个文件,扩展到组件、接口、业务逻辑这些。
    crocoBaby
        4
    crocoBaby  
       68 天前
    问同事
    renmengkai
        5
    renmengkai  
       68 天前
    疯狂问同事,是最快的方式
    forschers
        6
    forschers  
       68 天前   ❤️ 2
    最快的方法 找个人带你过一圈。然后再问问问问 很多时候人家嘴巴带一句的东西你要看很久
    lasuar
        7
    lasuar  
       68 天前
    修 bug
    8620
        8
    8620  
       68 天前 via Android   ❤️ 1
    大公司可以问同事,尤其是以前负责过的人。如果没有同事知道,建议首先了解业务表面业务逻辑,然后针对每一个使用场景进行调用链追踪。一定一个函数一个函数看过去,记得留痕迹,不一定要是思维导图,Ctrl CV 一个定义所在文件的名称和位置就行,时间紧任务重的情况下,没空制图的。

    在链路上函数全部看完后,可以对进程、线程、微服务、组件、类、方法等的功能和构建及析构做一个概括,尤其是在调用链上的位置和作用,然后依据这些概括,再进行聚类,比方说业务处理逻辑控制、鉴权、调用外部资源等……

    第一条线会比较困难,因为啥都不知道。梳理的多了以后,就会越来越快。有的时候甚至能快速看出代码中不同年代的特征,也是方便理解的一个标志,因为同一时期的代码往往有一定相似性。

    这个方法我自己的经历是能在短期(一两个月)内完成的,如果代码量在几万甚至十几万且没有帮助的情况下,超短期我觉得不现实。还有,这感觉算不上“超大型项目”,真的超大型项目从硬件到操作系统到虚拟化都可以是项目的一部分,代码也是百万甚至千万行级别的。
    y332332
        9
    y332332  
       68 天前
    读表结构。一个项目有什么,能做什么,不能做什么,都在数据表里了。
    GeekGao
        10
    GeekGao  
       68 天前
    6 楼的建议 可以参考
    omniversia
        11
    omniversia  
       68 天前
    有之前的同事最好问一下,如果是业务系统抓主要业务逻辑,文档,资料啥的要到手,别人说的多最好记录一下。哪些是最重要的部分搞清,时间紧就得抓大放小
    然后自己过代码,整理问题,保证问题有价值有营养(也不要自己不敢问就不问,实在弄不懂还是得问)
    然后一次性问第二遍,减少询问次数,把问题表达清楚,增加每次提问的信息密度和效率
    你能搞好关系也是软实力的一种,问起来顺畅一点,别人也更愿意告诉你
    以上若还不足以解决,短期快速消化困难,就得多投入时间
    还解决不了就跟领导说,让他找人告诉你或者在想办法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2807 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:02 · PVG 23:02 · LAX 07:02 · JFK 10:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.