如何去阅读开源的第三方库的源码

2023年9月2日,周六晚上

今天探索了一天如何去阅读第三方库的源码,终有所获。

再结合以前看cereal项目的源码的经验,于是就有了这篇博客。


我个人认为:

在阅读一个开源的第三方库之前,要先学会这个第三方库的一些简单用法,然后再顺着这个学会的用法去看相关的源码。

注意是要看和这个学会的用法相关的源码,因为只有这样才能看得懂,才知道这部分源码是干嘛用的,这样的学习才有正反馈、才学得爽。否则,你去看你不会用的那部分源码,你看不懂的,因为你不知道这个源码的作用,这样只会很痛苦,而且事倍功半,甚至是一点收获都没有,就算你能看懂,你也不知道这个是干嘛用的,这样很打击积极性而且学得也很吃力。

总而言之,就是只看会你使用的那部分源码,你不会使用的那部分源码不要去看。


就以我正在学习的cereal库为例子,

我先学习一个简单的用法,那就是使用cereal::JSONOutputArchive来生成JSON文件,

这涉及到cereal::JSONOutputArchive的构造函数和重载操作符()

cpp 复制代码
#include<cereal/archives/json.hpp>
#include<iostream>
#include<fstream>

int main(){
	bool boolList[]={true,false,true,false};
	char charList[]="cereal";
	int intList[]={1,2,3,4,5,6,7};
	double doubleList[]={1.1,2.2,3.3,4.4};
	
	std::ofstream ofs("002.txt");
	cereal::JSONOutputArchive archive(ofs);
	archive(boolList,charList,intList,doubleList);
}

我现在会使用cereal::JSONOutputArchive的构造函数和重载操作符()了,也理解了,

那么我现在就去看cereal::JSONOutputArchive的构造函数和重载操作符(),

也就是顺着用法往下看,顺着会使用的那部分源码往下看,

虽然cereal::JSONOutputArchive这个类足足有几百行但是我只看构造函数和重载操作符()那部分就行了,其他的一律不看。

根据我的实践,这样做的效果非常好,顺着自己会用的用法往下看的效果非常好,这比把每一个源文件从头看到尾好多了。

接下来我打算按照这种方法看完cereal和SQLite的源码。

相关推荐
程序猿tu12 分钟前
Axios学习笔记
笔记·学习
有谁看见我的剑了?40 分钟前
stress 服务器压力测试的工具学习
服务器·学习·压力测试
有谁看见我的剑了?40 分钟前
stress-ng 服务器压力测试的工具学习
服务器·学习·压力测试
牛奶咖啡131 小时前
学习设计模式《十二》——命令模式
学习·设计模式·命令模式·队列请求·宏命令·可撤销恢复操作·参数化配置
余厌厌厌1 小时前
go语言学习 第9章:映射(Map)
服务器·学习·golang
委婉待续1 小时前
Qt的学习(一)
开发语言·qt·学习
哆啦A梦的口袋呀2 小时前
基于Python学习《Head First设计模式》第七章 适配器和外观模式
python·学习·设计模式
笑鸿的学习笔记2 小时前
虚幻引擎5-Unreal Engine笔记之SET节点的输出引脚获取设置后的最新变量值
笔记·ue5·虚幻
恰薯条的屑海鸥2 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十期-Over Permission 模块)
学习·安全·web安全·渗透测试·网络安全学习
草莓熊Lotso2 小时前
【数据结构初阶】--算法复杂度的深度解析
c语言·开发语言·数据结构·经验分享·笔记·其他·算法