关于阅读源码

Posted 兵之诡道者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于阅读源码相关的知识,希望对你有一定的参考价值。

当我们对一个框架一个组件一门语言十分熟悉的时候,有追求的人都不会止步于只是熟练使用这个工具,而会更加深入地去了解这个工具背后的逻辑还有原理,这个时候就涉及到阅读作者源码的问题了。

本篇的诞生是由于在阅读当前大热的vue源码的时候,感觉代码虽然看得懂,但好像又不懂。懂的更多的是语法上没问题,甚至有点优雅;不懂的是,怎么会有这个思路,为甚么这一步之后就到了那一步。因为有此疑惑所以就有了这篇思考

读源码应该带着什么的目的去读?
读源码之后应该收获什么?
读源码的过程应该注意什么?
读源码我们应该避免去妄想什么?

读源码应该带着什么的目的去读?

这个因人而异,主要是看自己的想法。

可能只是单纯地想提高自己码code的水平,向大神看起
某个实现很优雅想深究他的原理
了解框架背后是否用了什么不为人知的技术
提高自己封装代码的能力

读源码我们应该避免去妄想什么

了解作者的整个思路?

  • 完全明白源码的每个细节
  • 自己也封装一个类似的框架

读源码之后应该收获什么?

  • 代码的组织,封装技巧
  • 一些新的技术,框架,辅助代码的东西
    框架背后的实现流程
    框架背后关键API实现的原理

阅读的顺序

  • 从package.json 的入口开始
  • 留意在浏览器中的表现
  • 从最早的地方打个断点,在debugger里面一个个地去跟踪每一个函数
  • 在代码的最深处打一个断点,然后去读每一个call stack 调用栈。

以上是关于关于阅读源码的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第26篇):将列表映射成字典

关于阅读源码

如何进行 Java 代码阅读分析?

Python代码阅读(第41篇):矩阵转置

Python代码阅读(第25篇):将多行字符串拆分成列表