动机
工作了半年之后,开始慢慢从学生时代的main函数走出来,开始写工程类代码。刚工作那会感觉好多东西可以学,每天惶恐又兴奋。但是经过一段时间后,该掌握的基础知识也就慢慢了然于胸,剩下的就是业务逻辑的堆砌而已。于是这时候开始寻求突破。
其实这时候的能力也是能搞简单业务逻辑的系统而已。对于一些比较复杂的系统,例如推送系统,例如数据存储系统,还是小白。于是产生了好奇,想找个好的源代码系统阅读一下,看看究竟大神写的代码和咱有啥不同以及他们是如何构造整个系统的。
这时候机缘巧合知道了leveldb这货(同事介绍),也知道了jeff dean这位互联网战神,于是就下定决心看一下战神是如何战斗
的。
阅读工具
leveldb的源代码还是比较好获取的,直接搜就出来了。但是毕竟是个系统级工程,没那么容易就能领略到战神的风采,于是我们需要借助一下工具来阅读。我使用的工具是clion,可以很方便的跳转和查找定义,界面如下:
非常清爽的工具,jetBrains大法好!
这个工具是需要收费,不过我寻求的是破解版(互联网人才济济)
入手
当我们接手一个新项目的时候,最恶心的是啥?没有文档!
对的,这么大个工程,我们需要避免刚开始就陷入细节,这样很容易云里雾里看不清楚。我的方法是:
- 首先看项目的文档,文档有介绍使用和结构
- 网上搜一些别人的分析文章看,先建立自己对项目的全局感(文章有那几个模块,每个模块用的啥技术),然后再各个击破,这样比较简单
- 分技术点阅读源码
要知道,要熟悉掌握这样一个系统是需要不少时间,毕竟人家也不是一朝一夕就写出来的。我们需要慢慢啃,一点一点消化,才能领悟到战神的魅力。
其实除了系统原理,大神的代码风格也很值得学习呀。
结束语
好了,开篇就讲到这里。接下来会以一系列文章的形式来记录阅读源码的过程,希望自己能领悟到其中的美妙!