自作 DB を作ろうって洋書をだいたい完走しましたので、感想を書こうと思います。
参考文献とか練習問題は一切やってません。
(だいたいって言っているのは、Ruby への書き換えをしてたんですが、13.14.15 章はアルゴリズムの話で、理屈が理解できれば書き換えしなくてもいいかと思って止めた)
link.springer.com
本の感想
年に 1 回くらい自作 XX を始めて、途中で飽きてを繰り返してるんですが、その中でも自作 DB は結構面白かったなというか進めやすかったなと思いました。
理由はいくつかあって
- web アプリケーションエンジニアにとっては距離が近い題材だったので、微妙にしか知らない単語が次々出てきてよかった
- 自作 XX は、初手アセンブラを書かされたりすることがそこそこあって、面白にたどり着くまでに最初の方で心が折られる事が多いが、今回はそんなことがなかった
- 自作 DB は初手から print debug ができて嬉しい...
- 教育用のコードってことで、仕様が実装しやすい状態になっていてわかりやすかった
- 自作ファミコンは、(当時のスペックからすると仕方ないけど)すごいややこしかった...
- 逆に実装しきってしまえば、実際売っているカセットがそのまま動くのは良い(私はその前に力尽きたけど)
- 自作ファミコンは、(当時のスペックからすると仕方ないけど)すごいややこしかった...
具体的な内容としては、ログ周りがどう実装されているとか、Explain を打ったときに裏側でやってそうなこととかの実装がわかっておもろかったです。
進め方
今回は ChatGPT におんぶにだっこで進めました。
以前にもブログを書いたんですけど、英語が得意ではないので翻訳をやってもらいましたが、それなりに自然な日本語で翻訳されるので進みが良かったです。
また、Java -> Ruby への変換もやってもらって、難しくない部分はかなり精度高く変換してくれたなーという感じでした。
AI が 8 割コードを書く時代が来るって予想されているのもわかるなーって感じです。
ただ、これはコードを書く必要がなくなるという感じではなく、chatgpt 以前にも IDE が 3~4 割コードを書いてくれていると思っていて、それの範囲が広がるだけなのかなという印象を持っています。少なくとも今のところは。
そのほかでは、今回は読書中にメモを取りながら進めたのも良かったなと思っています。
私は悪い意味で文章を斜め読みしてしまって、内容が頭に入ってこないことが多いのですが、メモを取ることで迷子にならずに済んだ気がします。
まとめ
今回時間があったので、集中してガットやってところ 2 ~ 3 週間程度で完走できたので、興味がある人は結構おすすめです。
(GW 中に rust で作ってたけど、1 から作り直した)
次はフロントエンドをちゃんと勉強し直したいけど、何やれば良いのかなやんでいる