当我们对一个框架一个组件一门语言十分熟悉的时候,有追求的人都不会止步于只是熟练使用这个工具,而会更加深入地去了解这个工具背后的逻辑还有原理,这个时候就涉及到阅读作者源码的问题了。
本篇的诞生是由于在阅读当前大热的
vue
源码的时候,感觉代码虽然看得懂,但好像又不懂。懂的更多的是语法上没问题,甚至有点优雅;不懂的是,怎么会有这个思路,为甚么这一步之后就到了那一步。因为有此疑惑所以就有了这篇思考
读源码应该带着什么的目的去读?
读源码之后应该收获什么?
读源码的过程应该注意什么?
读源码我们应该避免去妄想什么?
读源码应该带着什么的目的去读?
这个因人而异,主要是看自己的想法。
可能只是单纯地想提高自己码code的水平,向大神看起
某个实现很优雅想深究他的原理
了解框架背后是否用了什么不为人知的技术
提高自己封装代码的能力
读源码我们应该避免去妄想什么
了解作者的整个思路?
- 完全明白源码的每个细节
- 自己也封装一个类似的框架
读源码之后应该收获什么?
- 代码的组织,封装技巧
- 一些新的技术,框架,辅助代码的东西
框架背后的实现流程
框架背后关键API实现的原理
阅读的顺序
- 从package.json 的入口开始
- 留意在浏览器中的表现
- 从最早的地方打个断点,在debugger里面一个个地去跟踪每一个函数
- 在代码的最深处打一个断点,然后去读每一个call stack 调用栈。