最近在折腾edx,edx是我截至目前,见过最庞大的django项目。麻省理工和哈佛大学在这个项目中各资助了三千万美元,代码量可想而知。

在错综复杂的源码森林里,如何行走,不至于迷失,而能有所收获是个很普遍的问题。

读别人代码和自个儿写代码是很不相同的。读人家代码,有时你会有一种想揍作者的感觉。其实许多时候是你习惯以己度人而已。

试着去理解而不是急着去批评。我想这应当作为我们的起点。其实又岂止适用于读代码。


那么我们该如何阅读别人的代码。

此类问题,知乎中有几个回答不错,值得一读。here

此外也推荐这本书

我们今天不谈论源码阅读的艺术,只谈论如何利用github来帮助我们阅读代码。

泡上一杯咖啡,我们开始吧~

##为何使用github来阅读源码

托管了世界上绝大多的开源代码库

完整的资料,源码,文档,issue…

代码高亮

  • 0

    库内搜索

  • 1

    gist做代码片段笔记

  • 2

    fork项目,之后使用fork库中的wiki来记录阅读笔记

  • 3

    使用url精确定位到行数

  • 4

##如何使用 大家可以看下我阅读edx项目时做的wiki

使用IDE阅读当然也是挺方便在代码中穿梭的。

可我觉得阅读代码重要的不只是定位。而是如何随时记录,让你的阅读过程不会随着时间的中断而中断,这样我们的阅读过程是可积累的。对于大型项目,我们不能太过于依赖记忆力,尤其是我这种记忆力渣渣的渣渣,我更倾向于求助于工具。技术解放大脑~这样大脑内存就可以去存储更多有趣的东西了,诗词歌赋文章歌词泡妞策略 and so on …

其实这有点像阅读时能随时做批注,github项目自带的wiki是个不错的选择,我们同时打开项目源码和wiki页面,阅读到某处,需要做笔记时,切换到wiki页面记录。

我们使用markdown语法,可以轻易记录源码位置链接。具体实例参考的我的wiki

那么精确到行的url链接是如何取得的呢。 其实很简单。
鼠标在某行前边的数字上点击,你看浏览器导航栏里的url就发生变化了,完整复制下url就行。

泡上一杯咖啡,读你的源码去吧。

现在你再也不用害怕阅读过程被打断了。

你看妹子给你来微信了是吧,停下手头工作勾搭妹子去吧。随时回来你都可以继续你的源码阅读~

简直像断点续传有木有!!