原文地址: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 可供调用),总之不要被文档带着思路走,要被问题带着思路走.
请大家多拍砖或补充,多谢.