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

学习和阅读框架或项目源码,有什么好工具推荐的吗?

  •  
  •   x97bgt · 2019-12-08 10:38:03 +08:00 · 2918 次点击
    这是一个创建于 1811 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目用的是 Java。平时理解自家项目,或阅读框架,会随手画一画 UML 图,其他的就全凭直觉去阅读了。

    但总感觉这样太麻烦,费时费力也不够系统。

    有没有什么工具能提高学习和阅读效率的源码效率的?比如自动分析项目的结构、类关系,方便源码阅读甚至做笔记的工具?

    2 条回复    2019-12-08 13:11:48 +08:00
    rainbowchou
        1
    rainbowchou  
       2019-12-08 11:41:45 +08:00
    java 的话 idea 不就可以嘛,我喜欢用 sourceinsight
    secondwtq
        2
    secondwtq  
       2019-12-08 13:11:48 +08:00   ❤️ 2
    我的经验是,工具并不能很直接的帮到你,要真正理解源码,你需要自己去测试、调试它,这样你脑子真正用起来,学到的会更多
    比如一个接口有很多实现,在跑主流程的时候用的是哪个实现,有时候在对项目本身不熟悉的情况下,不调试很难确定
    然后你可以加各种断点,注释,assert,printf 什么乱七八糟的
    当然 Java 项目一般都很花哨,这时候确实可能需要个 Class Hierarchy 之类的(所以我到现在不习惯读 Java 项目,个别 Scala 项目倒是能读)
    当然我读得不多,一般都是用到的时候有 bug,或者好奇某一部分的原理才粗略看看,“怎么系统地学习一个项目”这项技能我还在慢慢探索

    工具的话,收费的有 SciTools Understand (超级贵,跨平台),Source Insight (价格还可以接受,非 Windows 平台需要用 Wine )
    以上都没用过
    还有个前段时间刚开源的 Sourcetrail (之前是商业软件,也比较新),来自莫扎特的家乡,我稍微用了下感觉做的比较简单,还没实际应用过
    其实我打算自己写一个的,不过这方面没有好用的工具,其实估计也说明了有能力做这种工具的人相比于读代码,更倾向于 hack 代码 ... 所以我如果真做的话估计会偏向于这方面

    一般人比较现实的
    Java 是 IDEA 和 Eclipse
    C/C++ 的话就是 VS,CLion,Eclipse CDT,Emacs ECB,vim + ctags/cscope/gtags/cflow/global
    动态追踪工具,VTune,Callgrind,gprof
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1684 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.