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

大家看源码时有什么技巧吗?

  •  
  •   zty7723271 · 2021-02-01 16:59:10 +08:00 · 2962 次点击
    这是一个创建于 1427 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如 Java,当 IDEA 无法全局查找第三方依赖包里的类调用关系时,怎样可以高效地摸清楚第三方类的依赖、调用逻辑呢?
    7 条回复    2021-02-03 13:49:05 +08:00
    zty7723271
        1
    zty7723271  
    OP
       2021-02-01 17:10:11 +08:00
    除了 Debug,然后回溯方法栈(这样太依靠主观猜测了),还有别的办法吗?
    shawndev
        2
    shawndev  
       2021-02-01 17:10:48 +08:00   ❤️ 6
    随便说几条,可能跑题。
    1. git log --reverse 先看初始提交
    2. git tag 检出重要版本,git diff 、git shortlog 分别查看 changelog 和差异
    3. 善用 git worktree
    4. 看第三方库管理文件的变更历史,java 多对应 gradle 和 maven
    5. 关注注释中的 TODO 和 FIXME
    6. 善用搜索,比如贡献者的 github 首页、开源项目的首页、相关依赖的首页等等
    7. 找到一种类似 playground 或者 repl 的工具,多运行代码片段
    8. 如果可能,最好用自己习惯的格式化工具格式化之后查看
    anthow
        3
    anthow  
       2021-02-01 17:11:19 +08:00
    就 debug 呀。
    annielong
        4
    annielong  
       2021-02-01 18:15:13 +08:00
    硬头皮找,刚遇到一个二次打包的,把代码塞到 spring 的 jar 里面,饭后放在 lib 下
    DCCooper
        5
    DCCooper  
       2021-02-01 22:53:06 +08:00
    小一点的项目,比如一个二进制工具,先去看 Makefile,知道项目是怎么编译出来的,入口函数在哪里等等。知道了之后,就开始使用这个程序,命令大概熟悉之后,开启 debug 模式,然后一路调试下来。
    拿 go 语言来说,dlv exec xxx -- cmd 然后打点一路走下去,期间遇到不懂的地方就 step 进去,看看是怎么处理的,直到程序终止。
    这样我觉得是最快的方法了,走过两遍之后,再去看代码,一点也不懵逼了。
    大型项目,二楼老哥说的不错。
    jones2000
        6
    jones2000  
       2021-02-01 23:07:36 +08:00   ❤️ 1
    看源码是有目的的去看, 这个又不是看小说,从头看起. 比如你用到了开源的一个方法, 你想了解, 你就调试断点一步一步跟进去不就可以了. 要什么东西就看什么.
    user8341
        7
    user8341  
       2021-02-03 13:49:05 +08:00
    @shawndev 每个大佬都有自己的方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2388 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:46 · PVG 23:46 · LAX 07:46 · JFK 10:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.