leveldb源码解析开篇
动机
工作了半年之后,开始慢慢从学生时代的main函数走出来,开始写工程类代码。刚工作那会感觉好多东西可以学,每天惶恐又兴奋。但是经过一段时间后,该掌握的基础知识也就慢慢了然于胸,剩下的就是业务逻辑的堆砌而已。于是这时候开始寻求突破。
其实这时候的能力也是能搞简单业务逻辑的系统而已。对于一些比较复杂的系统,例如推送系统,例如数据存储系统,还是小白。于是产生了好奇,想找个好的源代码系统阅读一下,看看究竟大神写的代码和咱有啥不同以及他们是如何构造整个系统的。
这时候机缘巧合知道了leveldb这货(同事介绍),也知道了jeff dean这位互联网战神,于是就下定决心看一下战神是如何战斗
的。
阅读工具
leveldb的源代码还是比较好获取的,直接搜就出来了。但是毕竟是个系统级工程,没那么容易就能领略到战神的风采,于是我们需要借助一下工具来阅读。我使用的工具是clion,可以很方便的跳转和查找定义,界面如下:
文章图片
Paste_Image.png 非常清爽的工具,jetBrains大法好!
这个工具是需要收费,不过我寻求的是破解版(互联网人才济济)入手 当我们接手一个新项目的时候,最恶心的是啥?
没有文档!
对的,这么大个工程,我们需要避免刚开始就陷入细节,这样很容易云里雾里看不清楚。我的方法是:- 首先看项目的文档,文档有介绍使用和结构
- 网上搜一些别人的分析文章看,先建立自己对项目的全局感(文章有那几个模块,每个模块用的啥技术),然后再各个击破,这样比较简单
- 分技术点阅读源码
其实除了系统原理,大神的代码风格也很值得学习呀。
结束语 【leveldb源码解析开篇】好了,开篇就讲到这里。接下来会以一系列文章的形式来记录阅读源码的过程,希望自己能领悟到其中的美妙!
推荐阅读
- QT+ffmpeg实现视频解析的示例详解
- Java并发编程解析 | 解析AQS基础同步器的设计与实现
- NET6|NET6 IOptionsSnapshot 配合Apollo 实现动态配置 支持自定义解析
- 框架大集合|【MyBatis详解】——动态SQL解析与执行原理
- mysql|mysql牛客网大厂面试刷题深度解析篇,每日一更(持续更新)
- java|(Java岗面试)耗时1月最新整理了20个技术栈的大厂面试题+解析+面经!
- 读完 RocketMQ 源码,我学会了如何优雅的创建线程
- Python3入门机器学习 经典算法与应用 轻松入行人工智能内涵源码
- 基于element-plus button 源码分析造轮子
- 大家都能看得懂的源码之|大家都能看得懂的源码之 ahooks useVirtualList 封装虚拟滚动列表