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

2021-02-01 16:59:10 +08:00
 zty7723271
例如 Java,当 IDEA 无法全局查找第三方依赖包里的类调用关系时,怎样可以高效地摸清楚第三方类的依赖、调用逻辑呢?
2747 次点击
所在节点    程序员
7 条回复
zty7723271
2021-02-01 17:10:11 +08:00
除了 Debug,然后回溯方法栈(这样太依靠主观猜测了),还有别的办法吗?
shawndev
2021-02-01 17:10:48 +08:00
随便说几条,可能跑题。
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
2021-02-01 17:11:19 +08:00
就 debug 呀。
annielong
2021-02-01 18:15:13 +08:00
硬头皮找,刚遇到一个二次打包的,把代码塞到 spring 的 jar 里面,饭后放在 lib 下
DCCooper
2021-02-01 22:53:06 +08:00
小一点的项目,比如一个二进制工具,先去看 Makefile,知道项目是怎么编译出来的,入口函数在哪里等等。知道了之后,就开始使用这个程序,命令大概熟悉之后,开启 debug 模式,然后一路调试下来。
拿 go 语言来说,dlv exec xxx -- cmd 然后打点一路走下去,期间遇到不懂的地方就 step 进去,看看是怎么处理的,直到程序终止。
这样我觉得是最快的方法了,走过两遍之后,再去看代码,一点也不懵逼了。
大型项目,二楼老哥说的不错。
jones2000
2021-02-01 23:07:36 +08:00
看源码是有目的的去看, 这个又不是看小说,从头看起. 比如你用到了开源的一个方法, 你想了解, 你就调试断点一步一步跟进去不就可以了. 要什么东西就看什么.
user8341
2021-02-03 13:49:05 +08:00
@shawndev 每个大佬都有自己的方法

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

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

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

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

© 2021 V2EX