如何阅读mongodb源代码-1
在上一篇帖子中,详细描述了如何下载mongodb源代码,
如果没有看, 可以参考如下链接 http://forum.huaweicloud.com/thread-7359-1-1-101.html
那么在这一篇帖子中,就详细介绍一下如何阅读mongodb源代码的,
主要是一些工具类的设置.
注意: 以下文章举例, 以cli界面为例, 如果使用的是windows系统, 可以自行创建文件件.
同时建议windows用户安装cygwin等unix shell模拟工具.
建立一个mongodb的代码文件夹
# eharry @ eharry-macbook-pro in /data/example [15:16:58] $ mkdir mongodb3.6.1
2. 进入这个目录,并解压mongodb源代码包
# eharry @ eharry-macbook-pro in /data/example/mongodb3.6.1 [15:21:25] $ tar -xzf mongodb-src-3.6.1.tgz # eharry @ eharry-macbook-pro in /data/example/mongodb3.6.1 [15:21:38] $ ll total 442840 -rw-r--r--@ 1 eharry admin 216M 1 5 23:08 mongodb-src-3.6.1.tgz drwxr-xr-x@ 24 eharry admin 768B 12 21 05:22 mongodb-src-r3.6.1
3. 选择个人喜欢的源代码阅读工具.
a. sourceinsight 用户
记得在源代码同级目录下,创建sourceinsight的文件夹,用于存放sourceinsight的工程文件.
然后添加mongodb源代码到sourceinsight工程.
b. clion 用户
记得在源代码同级目录下,创建clion的文件夹,用于存放clion的工程文件.
然后添加mongodb源代码到clion工程.
b. understand 用户
记得在源代码同级目录下,创建understand的文件夹,用于存放understand的工程文件.
然后添加mongodb源代码到understand工程.
d. CDT 用户
记得在源代码同级目录下,创建CDT的文件夹,用于存放CDT的工程文件.
然后添加mongodb源代码到CDT工程.
还有,sublime用户, vscode用户, atom用户等等, 不一而说.
就是希望在建立工程目录的时候, 不要污染了mongodb原生代码.
说一下上面的4个工具, 因为mongodb的编译, 有些头文件上通过python生成(这点比较坑ide),
所以导致上述的ide都不能在mongodb源代码上很好的工作, 浏览代码是经常碰到找不到定义的地方.
CDT
在代码分析上功能最差, 基本上被我弃之不用.
clion
打开和浏览代码起来, 机器资源要求太高, 小小笔记本经常风扇转速, 并且分析功能也不是很好.
而且巨贵无比, 没有社区版可用. 也基本上被废弃.
understand
功能不错,资源占用低, 响应也快, 基本上是这四个里面分析功能最好的.
虚函数,子函数, 父类, 子类的关系一目了然, 还支持模糊语义,
能很好的适用到mongodb这种用python生成头文件的情况.
但就是这个东西太贵, 买不起. 而且很少见公司会买这个软件.
sourceinsight
c/c++ IDE界扛把子, 自从15年前开发出来后, 未有更新. 老板和老板娘坐收15年软件使用费.
15年来, 还找不到一块比他更加出色的IDE. 3M大小的软件就能实现如此丰富的功能.
CDT你300M的软件不应该感到汗颜吗. clion虽然分析功能比sourceinsight好,但是性能就差远了.
这个软件也是大多数软件公司必备软件之一.
唯一的缺点就是, 没有linux和osx的版本. 可是mongodb 是数据库啊, 是跑在linux上的啊.
当然,通过crossover也可以将就一下.
上面说了这么多废话, 就是说, 目前并没有一款合适的IDE,用来编写阅读,处理c++代码.
所以仍有很多程序员固守vim阵地, 利用最原始的ctags + cscope 来处理mongodb代码.
4. VIM mongodb的阅读配置
用vim看mongodb代码,跟看其他c++代码一样. 在vim配置上并没有特殊的地方.
使用ctags cscope进行代码,变量,函数跳转,
使用a.vim进行头文件和实现的切换,
使用lookupfile进行文件内容跳转.
vim 如何配置阅读c++代码,会另开一篇博客详细描述.
本文看看mongodb使用vim的浏览效果
5. mongodb的代码简化
不管是什么代码, 当你在调查问题的时候, 如果搜索出来的东西结果太多,总是令人沮丧的,
尤其是当这个结果里面有很多测试代码的时候,那真是令人恼火的事情.
所以阅读mongodb代码的第一件事情, 就是代码简化, 去除掉所有的test代码.
# eharry @ eharry-macbook-pro in /data/example/mongodb3.6.1/mongodb-src-r3.6.1 [16:05:23] $ find . | grep test | rm -rf
这下代码清净了好多.
- 点赞
- 收藏
- 关注作者
评论(0)