• 请不要在回答技术问题时复制粘贴 AI 生成的内容
x97bgt
V2EX  ›  程序员

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

  •  
  •   x97bgt · Dec 8, 2019 · 3368 views
    This topic created in 2438 days ago, the information mentioned may be changed or developed.

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

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

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

    2 replies    2019-12-08 13:11:48 +08:00
    rainbowchou
        1
    rainbowchou  
       Dec 8, 2019
    java 的话 idea 不就可以嘛,我喜欢用 sourceinsight
    secondwtq
        2
    secondwtq  
       Dec 8, 2019   ❤️ 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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3899 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:18 · PVG 08:18 · LAX 17:18 · JFK 20:18
    ♥ Do have faith in what you're doing.