资讯动态

读了SQLite源码,发现一个人用C写出了比大多数团队用C++写的数据库更可靠的系统——SQLite的6个工程哲学

发布时间:2026/8/16 8:55:29 来源:尧图企业网站定制
一组数据。SQLite的核心库大约15.5万行C代码。测试代码和测试脚本加起来超过9200万行——是核心代码的590倍。100%的分支覆盖率,100%的MC/DC覆盖率(Modified Condition/Decision Coverage,这是航空软件DO-178B标准的最高要求)。全球部署量超过1万亿份,运行在每一部智能手机、每一个浏览器、每一台电视机里。而这一切的主要作者,是一个人:D. Richard Hipp。我最近花了两周时间读SQLite的源码。不是走马观花看个架构图,是真的把sqlite3.c这个25万行的amalgamation文件拆开来,一个模块一个模块地啃。读完之后有一种强烈的感觉:这不仅仅是一个写得好的数据库——它是一个工程哲学的教科书。我带着C++程序员的思维定势去读的。习惯了RAII、虚函数、模板元编程、异常安全这套体系,觉得C应该写不出什么"高级"的架构来。但SQLite让我意识到一件事:可靠性不是语言特性给的,是工程纪律换来的。下面是我从SQLite源码里提取出的6个工程哲学。每一个都值得写C++的人反思。哲学一:把100个源文件合并成一个——Amalgamation的极端做法SQLite的源代码由130多个.c和.h文件组成(核心库111个加上22个常用扩展模块)。但官方推荐的编译方式不是把这些文件逐个编译再链接——而是把它们全部合并成一个C文件:sqlite3.c

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价