怎么阅读开源项目源码
2018-01-12 18:48
393 查看
我基于个人兴趣和日常开发需要阅读过一些开源项目,我列一些比较通用的经验和感悟:
1. 不要畏惧。我发现大家都经常会感叹XXX强大,YYY流行,无形中你会把它放在一个不可触及到的地位,感觉它很难,而令自己不敢去挑战它。其实是人就会产出bug,假如你发现它有问题,就应该抓住机会去验证它。这个过程中,它的神秘感也就消失了,有过这么几次经验你就有信心了。其次是不要怕你提交的PR被拒绝。这是非常正常的,我有很多PR是被拒绝的,尤其是给标准库提交的Patch,绝大多数都被拒绝了。2. 带着问题去阅读代码,这也是我认为最有效的方式。这会让你在阅读时候有个主线,比较有针对性。
3. 断点调试。在Python代码中使用pdb一般不太好使,因为代码复杂的话,这种断点需要你使用多个n跳到对应的位置,我一般都是先抛出异常,然后使用pdb的up/down/n等命令调试。当然在目标位置添加一些print日志或注释部分代码然后直接使用exit()退出也是可以的。
4. 善用文档,官网例子。阅读一个项目一开始会有点无从下手,那么就先好好这些内容,它们一般都是作者表达这个项目的第一个入口。quickstart、tutorial等内容中的最小化的例子其实就是最好的阅读入口,先去看这些引用的模块和调用的对应方法或者函数的对应实现,从下至上去阅读。
5. 理解作者的思考方式。不同的项目要有不同的思考方式来阅读,不要拧着自己的习惯去阅读,这样会很累,得尝试接受别人的观点,甚至于改变自己。
6. 阅读项目的早期版本。一些项目随着时间演进已经非常复杂了,读起来有难度,那么你可以回到项目的早期版本上,先去看相对简单地版本,然后设置几个时间点或者版本节点,渐进的来阅读。
7. 记忆并绘制项目架构。项目就是一堆代码的组合,除了学习编程技巧,还要了解项目的架构决策,这对于未来自己写大型项目非常用用。这种理解越补充,你会对它就越来越清晰。
8. 参与。如果只是看和思考而不参与,其实效果大打折扣。我建议要参与一些issue讨论、向作者提问、提PR添加新的功能、帮助改善文档等等。很多时候你理解的其实和作者是有冲突的,无论是你说服他和被他说服,对自己的成长都是很有帮助的。
相关文章推荐
- 阅读源码,推荐 10 个 C 语言开源项目
- 开源项目源码在线阅读
- 关于阅读开源项目的源码,有哪些经验值得分享?
- 分享》:关于阅读开源项目的源码思路方法
- 开源项目源码阅读版本选择
- 开源项目源码阅读方法
- 源码阅读——十个C开源项目
- 分享》:关于阅读开源项目的源码思路方法
- 源码阅读——十个C开源项目
- 源码阅读——十个C开源项目(转载)
- 源码阅读——十个C开源项目
- 谈C程序员修养及大型项目源码阅读与学习
- 如何理解和阅读理解开源项目
- 最值得学习阅读的10个C语言开源项目代码
- Android 开源项目源码解析 -->公共技术点之依赖注入(二)
- 开源APP项目源码分析(5)- 音乐播放器类
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现分组效果的源码学习
- 最值得阅读学习的 10 个 C 语言开源项目代码
- 记住一句话,阅读优秀的代码可以知道怎么写,做项目,可以解决问题!
- 最值得阅读学习的 10 个 C 语言开源项目代码