关于阅读源码

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

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

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

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

读源码的过程应该注意什么?

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

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

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

可能只是单纯地想提高自己码code的水平,向大神看起

某个实现很优雅想深究他的原理

了解框架背后是否用了什么不为人知的技术

提高自己封装代码的能力

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

了解作者的整个思路?

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

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

  • 代码的组织,封装技巧
  • 一些新的技术,框架,辅助代码的东西

    框架背后的实现流程

    框架背后关键API实现的原理

阅读的顺序

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

关于阅读源码的相关文章

Linux 平台下阅读源码的工具链

原文:http://blog.jobbole.com/101322/ 前言 看源代码是一个程序员必须经历的事情,也是可以提升能力的一个捷径.个人认为: 要完全掌握一个软件的方法只有阅读源码. 在Windows下有sourceinsight这个源码阅读软件(虽然我没用过,但是网上评价还不错),由于我是个Linuxer,并不喜欢用Windows,所以自然是选择在Linux下阅读源码的工具了. 下面我将逐一介绍在Linux下阅读源码的工具. vim + ctags + cscope 源码阅读三剑客.v

使用 vim + ctags + cscope + taglist 阅读源码

转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合适的角度才会看得更舒服,对吧^_^ . 阅读源码的工具有很多,而且如今的集成开发环境(IDE)也很强大,但对于经常使用vim编辑器的程序员来说,对vim的强大绝对是“不抛弃,不放弃”的,况且我们只要安装一些插件配合vim的工作一样能达到IDE的效果,好了,废话少说.浏览了很多有关的网页资源后,发现有

Spring源码解析——如何阅读源码

最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo 这篇博文你可以了解到: 1 Spring jar包以及源码使用 2 简单的spring运行示例 3 利用断点调试程序,如何快速的阅读程序[快捷键等的使用] 这次阅读的源码比较老了,是3.0.5版本的,由于正好手头有这个版本的源码,而且平时基本上也是用的这个版本Spring,因此后文的分析也都是针对

androidSnake(阅读源码)

/MySnake/src/edu/hhxy/android/snake/Snake.java package edu.hhxy.android.snake; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class Snake extends Activity { private SnakeView mSnakeView; private static S

如何阅读源码,如何提高阅读源码的效率

就我自己阅读安卓源码的经验,本人研究过 settings,launcher,Sysupdate ,framework /services ,recovery的部分源码,并且成功修改google留下来的bug. 如果就是熟悉代码,不带问题的去看,看的会比较累,但是仍然是有方法可以借鉴的,其实这个方法,也是生活经验得来的,大家都会的. 就是从整体到局部,由总而分. 比如:你想了解recovery的代码,就应该先了解这个Recovery的运作流程,网上有很多人总结了,总概括图,先有个大概的了解: 第二

阅读源码的重要性:如厨师选食材,耍厨具——在Eclipse中如何查看Java、Android源码

首先,很多人说,不会看jdk中的源码就不叫学过Java.显然这是肯定的.打个比方:真正的厨师需要从食材的选取.加工,到最后的烹饪.装盘成型,甚至到最后给用户介绍食用方法等一整套流程走下来.而实际上很多厨师只是做了其中的一小部分,所以最多也只能叫得上"炒菜的",而不是一个厨师.而很多顶级餐厅强调选材,就是从源头上找到适合做某道菜的原料,甚至是反过来,得到一个供应链供应某种独特食材而专门为该材料设计某种烹饪技术.这就是从头至尾的资源最大化利用,其体现创新及内功的地方贯穿整个流水线!特别的,

Linux 下阅读源码工具(Vim + ctags+Cscope)

0. 写在前面的废话 开发环境迁移到了Ubuntu下,所有windows下好用的工具都要找个替代品. windows下一直用 souce Insight 来阅读源码,需要在Ubuntu下找个替代品. 上网看了看,貌似Vim + Ctags + Cscope不错,安装来试试 o(∩∩)o 1. 安装 在我用的ubuntu中,这三个软件都不是自带的,需要手动安装,很简单用apt-get命令安装就好了 $ sudo apt-get install vim $ sudo apt-get install

大神如何阅读源码

1.腾讯IMWEB负责人说: 首先,搞清楚自己要读懂他们的原因和动机. 其次,可以先看下这些优秀框架或者库的设计文档和架构图,这样会让你宏观上对一些概念有些认识. 然后,从你最感兴趣的一个点,开始设置断点,跟进去看发生了哪些事情. 和架构设计哪一块是match的. 有人补充:最快,最易懂方法.断点单步调试. 如:jquery中 $.fn.show 源码是如何实现的. 自己写个 $('#test').show(),打上断点.单步调试.那么你可以看到jquery中每一步发生了什么事情.分析即可. 2

怎样阅读源码

第一章: 导论 ++++++++++++ 1.要养成一个习惯, 经常花时间阅读别人编写的高品质代码. 2.要有选择地阅读代码, 同一时候, 还要有自己的目标. 您是想学习新的模式|编码风格|还是满足某些需求的方法. 3.要注意并重视代码中特殊的非功能性需求, 这些需求或许会导致特殊的实现风格. 4.在现有的代码上工作时, 请与作者和维护人员进行必要的协调, 以避免反复劳动或产生厌恶情绪. 5.请将从开放源码软件中得到的益处看作是一项贷款, 尽可能地寻找各种方式来回报开放源码社团. 6.多数情况下

Spring源码解析——如何阅读源码(转)

最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo 这篇博文你可以了解到: 1 Spring jar包以及源码使用 2 简单的spring运行示例 3 利用断点调试程序,如何快速的阅读程序[快捷键等的使用] 这次阅读的源码比较老了,是3.0.5版本的,由于正好手头有这个版本的源码,而且平时基本上也是用的这个版本Spring,因此后文的分析也都是针对