4 个回答
lazyboy
  • 1.5k

a、如果有文档话,肯定是看着文档容易理解
b、首先要人为的分块,毕竟作者也不是一下就把代码写出来的。
拿你的链接的例子说:

  1. 首先是状态变量定义(或者你所认为的一些其他东西),也就是所谓 var *(在所有大括号外定义的)
  2. 其次function Interface(的定义,也就是Interface的析构函数+调用实现
  3. 剩下就是Interface.prototype.*实现的各种方法,快速技巧就是通过判断每个名字的大概意思,内部实现不用深究,等到具体逻辑跟踪的时候分析
  4. 在向下的话就是类似如此的结构
function emitKeypressEvents(stream) {
    // something
}
exports.emitKeypressEvents = emitKeypressEvents;
//基本上可以看出是用来扩展exprots,细节同样不关注,靠名字猜意思
  1. 经过上面的分析以后,基本就剩下几个函数的定义,通过名字猜猜意思,然后你就可以直接跟踪分析,这需要具体结合你要做什么才能具体分析。

个人觉得带着问题去读最好,比如你要解决某个问题,然后通过不断看代码基本上就能看点门道出来

周良粥凉
  • 888

1。部分开源代码都会附有文档,可以顺着文档看下去。
2.去看函数的定义和调用这一部分
3.整体的一个框架流程
4.梳理逻辑

补充:如果条件允许,你可以拿到他的一些数据。我建议你可以根据他早期版本的一些bug开始看。

先git checkout到最早版,然后跟着版本读

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏