SQLiteのコードリーディングとか。
社内の若手(20代)のエンジニアと話をしていたら、マジメにソフトウェアのお勉強をしたい、とのこと。
色々とオススメしつつ、実装を読んでみると得るもの多いよとかいうお話ついでに、「RDBMSの実装を読んでみたら?」と無責任サジェスチョン(!)。
ちょうど探索アルゴリズムがという話が出たり、彼はDB周りにからむことも多そうなので、RDBMSのコードならOSに近いlayerも見えるし、B-treeとかlogicも分かるし、SQLの言語処理系も見えるしと、幅も広いし実用的だし、役に立ちやすいという意味でも良いかな、と。..
さて、お勉強という用途なら何が良いかな、、とさくっと探してみて、SQLiteあたりなら、量も現実的だし、ドキュメントもコード内のコメントも比較的キレイにまとまっていたので、薦めてみる。:)
テスト用のコード
ちなみに、SQLiteはテストコードが本体より長い、それくらいQualityに気をつかっているんだよーという話はさくっときいたことあったのだけれど、、、
As of version 3.8.0, the SQLite library consists of approximately 84.3 KSLOC of C code. (KSLOC means thousands of "Source Lines Of Code" or, in other words, lines of code excluding blank lines and comments.) By comparison, the project has 1084 times as much test code and test scripts - 91452.5 KSLOC.
「長い」というか、1000倍だった。