如题:如何有效学习开源项目代码?
一般来说分两种情况,一是带着问题去看开源代码,二是完全从零开始,学习开源项目的思路(甚至是为了面试)。
第一种情况,遇到问题的时候会去看源码。比如我在网上找换肤方案,有个less.js
,按照官网的步骤,最后报错了,然后我很好奇为什么会报错,于是去看了它的源码。怎么看的呢?就是从报错的地方直接打断点进去,找到对应的源码。大概知道问题原因后,又会比较好奇这个方案整体是怎么实现的。于是就从入口去看整体的代码,主要功能是如何实现的。我之前回答过一个问题,当时就是遇到问题了,我临时去看了axios
的源码,找到了问题。
链接:自以为理解了宏任务与微任务,结果...为什么同步代码中的alert阻止了网络请求,宏任务中的却不行?
第二种情况就是现在很多人看vue、react
源码的一种方式。在实际使用框架的过程中,往往不会涉及那么深的东西,但是你不去了解更深的原理,其实你对这个框架也就只能停留在最浅显的用的阶段。对于这种框架级别的源码,其实难度会大很多,因为整体架构有时候就比较复杂了,如果你直接去看github仓库,有点无从下手的感觉,你说你先看哪部分好呢?框架级别的可以推荐先从一些大佬写的mini浓缩版开始看,了解大概的架构和原理,比如mini vue等。通过这些浓缩的项目,你可以直接看很多关键技术的具体实现,比如reactive
是如何实现的,nextTick
是如何实现的...然后梳理一个整体的结构图,哪些模块负责哪些功能,最终这个框架就能成功跑起来了。当你进阶了之后,再去看完整的开源代码,或许就能有自己的心得和理解了。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
必须看源码的话:
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
个人认为看源代码并不是一种高效的学习方式.很多人因为面试会问源码,或者看到某些博主说研究源码很厉害就去学源码, 我感觉是个误区.
我建议学习源码的方式是, 基础打牢, 然后真正有需要的时候, 翻文档的时候不经意就会去看源码. 如果有需求要修改, 自然而然就会去涉及部分源码.然后根据需求重点的去看源码.就算是面试也不是让你看书一样把源码从头看到尾的.
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
理清脉络,这东西主要是干嘛的, 然后你自己会怎么设计, 与开源的又有什么不一样, 作者有啥让你眼前一亮的想法, 基本就能看明白了
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
源码这些,得自己去看,去解读,或者根据官方的一些文档去学习,我们知道了这些原理后,对于程序的整体把控力,哪里出问题的地方会更加明确,理解源码可以让程序员更加深入的了解自己所使用的工具类的原理。开发起来更加稳健。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。