博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PostgreSQL 源码解读(3)- 如何阅读源代码
阅读量:2501 次
发布时间:2019-05-11

本文共 916 字,大约阅读时间需要 3 分钟。

如何阅读源代码?

    先说结论,我的阅读方式是通过自顶向下的方法掌握全局,使用自底向上的方法深入理解。

自底向上的方法
    先说自底向上的方法。简单来说,就是从一个具体的小功能点出发阅读和实践,然后再由此小功能扩展逐步的向上上溯到大模块,就好比种上一颗小树,每天的施肥浇水,如果方法得当自然可以长成参天大树。
    以阅读PG的源代码为例,可以通过psql从插入一行数据的最小方法/函数(PageAddItemExtended)为出发点,深入理解该函数后,使用gdb跟踪该函数的调用栈,根据调用栈的函数信息逐步上溯到最顶层的调用入口函数或主函数,每上溯一层就把该层函数相关的数据结构、宏定义和依赖的子函数完全彻底的理解清楚。通过这么一个过程,把插入数据相关联的知识体系建立起来,比如Page存储结构、Buffer的管理、WAL日志相关管理、SQL解析执行、前后台接口等相关知识。有了这个脉络,有了相关的数据结构作为基础,再来理解其他操作,比如UPDATE/DELETE等DML、CREATE TABLE/ALTER TABLE等DDL语句、SELECT等查询语句等就相对容易很多。
自顶向下的方法
    与自底向上的方法相对的是自顶向下的方法,阅读源代码的初期可以使用这种方法建立源代码的体系结构,有利于全局把控,就好比原来一棵大树,如果一开始关注某片树叶,某个枝干,自然无感,但如果从主树干出发来看整个大树,那就基本可以看到这颗大树的全貌了。
    阅读细节的时候可以使用自顶往下的方法吗?我的个人经验是不太适合,还是以大树做个类比吧。从主树干出发,这时候有N个子干,从某个子干进入,有M个分支,从分支进入子分支,又有X个子子分支,除非脑容量够大,否则里面的细节会让人望而生畏。
    本是凡人,还是踏踏实实做些凡人能做的力所能及的事情吧。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-2374913/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/6906/viewspace-2374913/

你可能感兴趣的文章
Another DRM driver develop guide - 还没进入kernel
查看>>
大话设计模式读书笔记(十四) 适配器模式
查看>>
linux 下eclipse配置apache服务器,选中server时server name为灰色状态
查看>>
实战:ASP.NET MVC中把Views下面的视图放到Views文件夹外
查看>>
发送邮件
查看>>
坏块管理(Bad Block Management,BBM)
查看>>
列表的设计
查看>>
python爬虫---从零开始(五)pyQuery库
查看>>
POJ2236(KB5-A)
查看>>
Centos MySQL数据库迁移详细步骤
查看>>
L2-001. 紧急救援---(Dijkstra,记录路径)
查看>>
2初出茅庐--初级篇2.1
查看>>
新建 WinCE7.0 下的 Silverlight 工程
查看>>
腾讯的张小龙是一个怎样的人?
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
git
查看>>
btn按钮之间事件相互调用
查看>>