最近在看源码时候,有些心得,整理下。

1 先把源码下载下来,自己构建,必须执行单元测试,看单元测试成功率以及消耗时间。从这里可以看出项目的测试质量。


2 先把源码结构以及构建脚本,readme等基本的结构看完,了解构建和使用过程。这步重在看工程结构和使用基本文档。


3 通过JavaDoc把所有的包看完,了解每个包的作用,包的数量看出源码复杂度和作者的结构规划,同时也可以看到文档的质量。找到最核心的几个包,里面的类全部看完,大概了解做什么,核心的类在包中一般有标注,核心的类代表着项目的灵魂。看能不能抽取些领域的概念,用哪些类(概念)支持了这个项目。从而猜测哪些概念支持了这个项目运行和解决领域问题的基础。


4 尝试第三步抽取的类画出类图,也就是项目的静态结构。这一步一般耗时间并且带了很多猜测性的探索,尝试理解大概轮廓。项目同时使用了哪些数据结构和算法?


5 写一个使用demo,debug进去看核心流程,这一步最费时间,因为需要理解大量细节和流程,debug过程中看到经历的多少个类,理解项目动态的运行。重在了解设计思路。


6 看网上解析和已有源码分析文章,和自己理解一样吗,或者新的理解。这个阶段可以重点分析代码质量,比如抽象度,扩展度,设计细节,DesigniteJava之类工具分析OO Metris等数据。


7 理解项目为了解决一个问题,创造了哪些概念和过程。给项目提出五个优点和五个缺点,从源码,设计,设计,实现,工程,竞品等角度。


上面7步只是了解项目的基础,更深入的需要深入看源码,理解源码。更重要的理解项目抽象了哪些东西,项目灵魂,项目设计思路,项目的核心概念。