最近阅读源码, 总有种找不到抓手的感觉. 一个流程调下来, 感觉啥收获也没有, 心里很虚.
然后,我就停下来问自己这个问题, 我为什么要阅读源码,我要从源码中学习到什么,或者说从源码中得到什么?阅读源码的初衷到底是什么?
我想了一下,应该是这几个
- 了解框架实现了什么功能, 是怎么是实现的
- 学习框架的设计思想
- 学习什么是优秀的代码
所以,归根到底,就是了解整个框架是怎么设计的, 各个功能点是怎样实现的.
要了解框架的设计,就应该要抓住框架的一些核心概念, 掌握框架的设计模型, 分了几层, 有哪些角色, 提供了哪些功能
要了解功能点是怎么实现的, 通常会采用调试的方式去了解,但是去调试一个调用流程, 难免会陷入跟踪方法调用流程的细节中, 最后的输出结果就是一堆的方法调用而已.
毕竟是面向对象的语言, 我们也应该采用面向对象的方式来学习作者是怎么设计的. 为了实现一个功能, 作者设计了哪些类,这些类又分别是负责什么功能, 然后才是这些类间是如何协作的,也就是调用流程.
所以, 学习框架的模型设计, 设计模式才是重要的
看了一个大佬写的博客,感觉自己的认知还是很浅薄的, 上面唠唠叨叨的, 大佬一句话就能总结, 就是厘清核心数据结构之间的关系
Linus 大佬说的好, 烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系.
采纳codedump大佬的做法了,以后不贴源码,不自欺欺人了, 然后学着多画图吧