各位好!如果想要阅读一个开源项目的源码,而这个源码作者水平又很高,怎么着手开始看呢?例如像这个:g2o.我现在主要是根本找不到该从哪个地方开始看,或者说程序入口在哪儿...翻了一会儿越来越觉得难,退堂鼓就开始敲了... 实在是没有这个经验,无头苍蝇...
1
ghos 2019-04-29 16:28:55 +08:00
开 debug 一路一路跟下去
|
2
whoami9894 2019-04-29 16:29:31 +08:00 via Android
从 v0.1 的源码看起
|
3
cjc2017 2019-04-29 16:45:37 +08:00
相同的困惑
|
4
tt67wq 2019-04-29 17:37:21 +08:00 1
直接看源码跟考古差不多,没有章法的话根本看不了。
最好是尝试自己写点简单 demo,写的时候会遇到问题,然后去源码里面找找他是咋写的。 |
5
changwei 2019-04-29 17:46:08 +08:00 via Android 1
如果是找不到入口的话,先看 travis,cmakelist (如果没有用 cmake 那就看 makefile )。对于有依赖管理的项目,先看他的依赖声明文件(比如前端就是看 package.json,php 看 composer.json ),了解这个项目外部有哪些依赖。
看 make 文件是为了了解这个项目内部的编译顺序,了解项目内部模块互相依赖的情况。梳理清楚项目内部的依赖之后就至顶向下看。 我看的都是中小项目,web 业务代码比较多,这个思路足够了,大项目开源轮子估计还有别的技巧。比如结合 readme.md 和一些 docblock 格式化的注释。 |
6
dfjslkjdf 2019-04-29 18:32:03 +08:00 1
下载下来编译,先读 readme。
有文档读文档, Documentation A detailed description of how the library is structured and how to use and extend it can be found in /doc/g2o.pdf The API documentation can be generated as described in doc/doxygen/readme.txt 最主要理清楚模块框架,整体设计,然后逐步深入吧。 单元测试也有助于理解。 |
7
dfjslkjdf 2019-04-29 18:32:30 +08:00
个人拙见,有更好的东西请大佬指教。
|
8
blless 2019-04-29 18:48:34 +08:00 via Android
go 语言我觉得有个好处就是我看不懂就去看 test 里面代码怎么测试的
|
9
q8164305 2019-04-29 18:51:08 +08:00 via Android
借助大佬的源码阅读文章和 debug 慢慢看,别自己扎进去,网上很多源码分析,一边看一边 debug
|