じゃるログ

その辺にいるエンジニア

Rubyのしくみ -Ruby Under a Microscope-

なぜ読んだ

Rubyがコードを実行している時に裏側で何をやっているのか知りたかったから

概要

1~3章では、Rubyソースコード実行するまでの大まかな流れが解説されています。ソースコード字句解析構文解析YARV命令列と進んでいきますが、その際にどのようにトークン列を生成し、構文パターンを発見し、YARV命令列へと変換しているのかについて詳しく解説しています。

4~9章では、制御構造、オブジェクト、クラス、定数探索、メソッド探索、クロージャメタプログラミングなどの内部の動作について詳しく解説されています。8章のクロージャと9章のメタプロの解説部分は、新卒一年目には少し難しいかなり突っ込んだ?内容になっており、理解に苦しみました。

10, 11章では、JRubyRubiniusなど、MRI以外のRuby処理系についても触れていて、比較しながらそれぞれの特徴について解説されています。
最終の12章ではGCガベージコレクション)について言及されています。

所感

初めて知ることばかりで、どの章も良かったと感じました。

5章のオブジェクトとクラスは興味深かったです。オブジェクトやクラスが生成される時に内部で何が起こっているのか、オブジェクトはどのように表現されていて、どんな情報を保持しているのか、などが丁寧に解説されており「オブジェクト、クラスとは何者なのか」という大きな謎の解明の助けになりました。

また6章のメソッド探索と定数探索もかなり興味深かったです。
特に定数探索では、そもそも定数とは何で、どこに保存されているのか。継承されているクラスや親のスコープをどのように辿って定数を探索しているのか、の理解の助けになります。定数探索の内部を知り理解することは実際の業務の遂行にも大いに役立っています。 ちなみに定数探索については、Railsガイドの定数の自動読み込みと再読み込みリファレンスマニュアルにも簡単な解説が載っています。

個人的には、仕事で(もちろん趣味でも)Rubyを触っている人には一度は読んでみて欲しいなと思える書籍でした。

以上、 Rubyのしくみ -Ruby Under a Microscope- でした。