需要技能:程序调试能力.
1,跑通程序.
2,运行程序的核心功能,从外部了解它的运行方式.
3,阅读核心功能相关的官方文档.
4,读核心功能对应的源代码(即核心模块),从内部大概了解一下核心模块之间的联系.
5,提出一个关于源码的问题(比如状态机如何运作,filters分为几层等),试图解决.
6,浏览该问题相关代码和测试,然后边调试边解决问题,(不要在代码非常不熟悉的情况下就开始调试,过长的程序栈会消耗太多时间).
7,继续提出问题,直至核心模块烂熟于心.
8,(可选)与同学同事交流学习该模块,或写成博客与网友分享,以加深记忆,获取反馈.这次你很有可能会发现理解上的漏洞或错误,进行查漏补缺吧.
9,开始阅读次核心模块,并重复3-7步骤.
10,如果还嫌不足,为该程序开发插件或库吧.
11,理解源码.
问题导向阅读代码的方法分为外部和内部两个部分.
外部阅读:带着问题去看,自己提出一个程序常用的应用场景,然后自己去在程序上测试一些主要逻辑,比如后台添加了A,前台是否就生成了B?服务端修改了C,客户端会不会出现D之类.
内部阅读:带着问题去看,提出一个如何写程序拓展的场景,(你以后想拓展这一块逻辑该怎么做?有没有内建的现成API可供调用),总之不要被文档带着思路走,要被问题带着思路走.
(转)阅读源代码的几个步骤
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- 2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员...
- 1. 类的基本定义 Swift中的结构体和类非常相似, 但是又有不同之处 类是具有相同属性和方法的抽象 类没有逐一...