源码分析思路

  • Post author:
  • Post category:其他



不知道    —->    知道 (1)

不理解    —->    理解 (2.3.4.5)

1.软件功能:先了解源码有哪些功能,最好先读一下readme

2.代码的组织结构:查看代码目录中每个目录都是什么功能,每个文档是干什么的

3.使用graphviz绘制出程序流程图,了解整套运行起来的机制(不要深入细节,单需要搞清楚整个业务流程是什么样的)

4.模块粘合层:每个模块之间的通信,了解中间件,模式,回调,设计模式,委托代理,模块之间的粘合技术是非常重要的,因为他们会把平铺直述的代码给分裂开来。让你不容易看明白他们的关系

5.具体实现:了解了以上的三方面的内容,已经对整个代码的架构和逻辑有了总体的认识。这个时候可以深入细节,开始阅读具体实现的代码了,对于代码的具体实现,一般来说,需要知道一些事实,这样有助于阅读代码中找到重点。

{


~ 代码逻辑:一种是业务逻辑,这种逻辑是真正的业务处理逻辑;另一种是控制逻辑,这种逻辑只是用来控制程序流转的。

~ 出错处理:根据2:8原则,20%的代码是正产的逻辑,80%的代码是在处理各种失误,所以在阅读代码时,可以把处理错误的代码全部删掉,这样就会留下比较干净和简单的正常逻辑代码,排除干扰因素,可以高效的阅读代码

~ 重要算法:筛选出算法,往往是技术含量的部分。

~ 底层交互:有一些代码适合底层系统交互的

~ 运行时调试: 很多时候代码运行起来,才知道具体发生了什么事,所以,让代码运行起来,打好日志,debug断点跟踪好,实际看一下运行的过程,是了解代码的一种很好的方式、

}

方法总结:

自顶向下,从总体到细节的”剥洋葱皮“的读法

画图是必要的,程序流程图,调用时序图,模块组织图。。。 (调用时序图使用graph自己画,模块组织图使用Drafter生成)

代码逻辑归一,排除杂音,主要程序才会凸显出来,更清晰

debug跟踪一下代码是了解代码在运行中发生什么的最好方式



版权声明:本文为xinkongqiSHF原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。