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

2019-12-08 10:38:03 +08:00
 x97bgt

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

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

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

2801 次点击
所在节点    程序员
2 条回复
rainbowchou
2019-12-08 11:41:45 +08:00
java 的话 idea 不就可以嘛,我喜欢用 sourceinsight
secondwtq
2019-12-08 13:11:48 +08:00
我的经验是,工具并不能很直接的帮到你,要真正理解源码,你需要自己去测试、调试它,这样你脑子真正用起来,学到的会更多
比如一个接口有很多实现,在跑主流程的时候用的是哪个实现,有时候在对项目本身不熟悉的情况下,不调试很难确定
然后你可以加各种断点,注释,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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626938

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX