分享 阅读源代码的几个步骤 [轻拍]

whitecrow · 2013年10月22日 · 最后由 whitecrow 回复于 2013年10月23日 · 2942 次阅读

原文地址:http://liusihao.com/post/56383384819

详情请查看我的 PPT: http://yun.baidu.com/share/link?shareid=774438004&uk=1611324452&third=0《如何阅读源代码》

需要技能:程序调试能力.

1,跑通程序.

2,运行程序的核心功能,从外部了解它的运行方式.

3,阅读核心功能相关的官方文档.

4,读核心功能对应的源代码(即核心模块),从内部大概了解一下核心模块之间的联系.

5,提出一个关于源码的问题(比如状态机如何运作,filters 分为几层等),试图解决.

6,浏览该问题相关代码和测试,然后边调试边解决问题,(不要在代码非常不熟悉的情况下就开始调试,过长的程序栈会消耗太多时间).

7,继续提出问题,直至核心模块烂熟于心.

8,(可选)与同学同事交流学习该模块,或写成博客与网友分享,以加深记忆,获取反馈.这次你很有可能会发现理解上的漏洞或错误,进行查漏补缺吧.

9,开始阅读次核心模块,并重复3-7步骤.

10,如果还嫌不足,为该程序开发插件或库吧.

问题导向阅读代码的方法分为外部和内部两个部分.

外部阅读:带着问题去看,自己提出一个程序常用的应用场景,然后自己去在程序上测试一些主要逻辑,比如后台添加了A,前台是否就生成了B?服务端修改了C,客户端会不会出现D之类.  

内部阅读:带着问题去看,提出一个如何写程序拓展的场景,(你以后想拓展这一块逻辑该怎么做?有没有内建的现成 API 可供调用),总之不要被文档带着思路走,要被问题带着思路走.

请大家多拍砖或补充,多谢.

这么读源码也太累了,估计没多少人会完全按这个步骤来。

先从简单的入手吧,关键是多实践才是王道

ppt 看起来不错,不过我不会下载 pptx 的。pdf、tex、markdown 之类的会下载。

#1 楼 @nightire 你们一般怎么读的呀?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册