源码阅读
动机
为什么要去阅读源码,因为它本身是一件非常耗费时间的事情,很多时候人们更愿意重写一个程序而不是维护一堆破烂的代码,所以很多人不愿意去阅读别人的代码,当然,阅读写作优良的代码就如同欣赏艺术品,在欣赏的同时可以看到背后隐藏的深层次涵义。为了提高自己的编程水平,阅读比自己牛的人写的代码会让你更快进步。仅有这个动机就已足够,现在让我们开始看看,我们该如何开始阅读代码。
准备工作
要阅读什么?这是第一个要解决的问题,我要提高哪方面的编程能力,或许我对哪方面的程序感兴趣,比如说学习系统设计的人不妨看一下比较低版本的linux代码。明确自己阅读代码的目的能在很大程度上减少时间浪费,有的人阅读代码是为了看别人的格式,这时候就不需要太多关注程序的流程。有的人是为了了解程序的架构及设计思路,这时对于细枝末节的代码可以不予关注。而有的人阅读的代码是为了提升技术,那就要求对相关代码进行深入理解,以求达到最大学习效果。
根据自己的目的不同,我们再去选择代码,主要可以从网上下载,各大open source站点。
阅读代码还有一个前提就是必须要找那些在经过努力之后可以大部分看懂的程序,这样可以达到循序渐进的效果,得到最大输出。
在阅读之间还可以翻看别人是否已经注解过该代码,或者有相关书籍可以参考。
工具
最好能在阅读前配置一个可以让代码运行的环境,动态调试更能快速理解代码含义。
主要工具有,编译环境,dump工具,代码版本管理(SVN),以及其他一些相关工具
开始阅读:坚持
第一阶段:快速入门
尝试编译并运行查看结果,不能编译运行的要寻找解决方法,在这个过程中已经是在阅读代码了。
从程序的头开始分析,先看调用流程,看大框架,分支及模块,可以从个模块的命名及调用关系来看之间的联系,及模块分工。
第二阶段:精读
认真分析每个子函数的含义,对于命名不易理解的可以加以修改,看过的代码添加自己的注释。对于不懂的地方及时记录,统一查找答案。
在细读之后再来重新审视第一阶段得到的框架概念,修改错误的认识。
第三阶段:总结及记录
对于学到的东西加以概括,对软件作一个文档归总。可以发表也可以留作未来使用。