『パーフェクトRuby』 - 流行も含めた実践中堅書
【Part1 Ruby ~overview】
- 1章 Rubyの概要
【Part2 Ruby言語仕様】
- 2章 Rubyの基礎 -- 変数、クラス、例外、IOなどの概観
- 3章 制御構造/メソッド/組み込み関数
- 4章 クラスとモジュール
- 5章 主な組み込みクラス/モジュール -- Numeric、String、Time、Threadなど
【Part3 メタプログラミング】
- 6章 Rubyのクラスオブジェクト -- クラスとオブジェクト、特異クラス、Module#prependなど
- 7章 動的なプログラミング -- オープンクラス、method_missing、evalなど
- 8章 Procオブジェクト
- 9章 Methodクラス
- 10章 Rubyでのリフレクションプログラミング
【Part4 標準添付ライブラリ】
- 11章 ライブラリ -- thread, fiber, pathname, yaml, json, set, net, http, loggerなど実用的なものを取り上げる
- 12章 組み込みツール -- irb, Rake, RubyGemsなど
【Part5 実践プログラミング】
- 13章 gemパッケージの作り方
- 14章 よく使われる標準外のツール -- Bundler, Capistrano, Pryなど
- 15章 コマンドラインアプリケーション開発
- 16章 Webアプリケーション開発
2013年に出た本書は、基礎を簡単に抑えつつ、Rubyを特徴付けるメタプログラミングにも触れ、実用的なライブラリ、最後は何かモノを作ってみるところまで辿り着かせてくれる...、という盛りだくさんな内容です。
章ごとにブレはありますが、辞書的な解説にとどまらず機能の必要性や実際に使うときの流れがちゃんと書かれているなど、文章の質が高いため読みやすいです。ある程度Ruby歴の長い人にとっても、紋切り型の説明とは別角度の表現に学ぶことが多い良書なのではないかと思います。
Pry、Capistrano、BundlerなどRubyを日常的に使うにあたって出会うであろうツールについて解説が用意されている(14章)のも嬉しいところです。
『メタプログラミングRuby』 - 闇に飲まれないための魔導書
【第1部 メタプログラミングRuby】
- 第1章 月曜日:オブジェクトモデル -- オープンクラス、メソッド探索
- 第2章 火曜日:メソッド -- method_missingなど
- 第3章 水曜日:ブロック -- クロージャやinstance_evalについて
- 第4章 木曜日:クラス定義 -- Rubyクラス体系の真の姿を知る
- 第5章 金曜日:コードを記述するコード -- eval族
- 第6章 エピローグ
【第2部 Railsにおけるメタプログラミング】
- 第7章 ActiveRecordの設計
- 第8章 ActiveRecordの中身
- 第9章 安全なメタプログラミング
「メタプログラミング」は『パーフェクトRuby』のPart3でも扱われていますが、本書は一冊まるまるメタプログラミングがテーマです。翻訳書にありがちな「Hey! ボブ!」的なテンションのストーリー形式ですが、訳者の方が意訳気味にこなれた文章に落としてくれているので読みにくさはありません。
特異クラスとClassクラスの関係やメソッド探索の仕組みなど、Rubyがどのように動いているか知ることが出来ます。
また、後半ではRailsの内部コードをテーマに、現場でのメタプログラミングの使われ方を紹介しています。
Railsはメタプログラミングの化け物であり本書で解説するコードは氷山の一角であるとはいえ、初学者にとってブラックボックスにしか思えないRailsに切り込む武器を本書で手に入れられるという事実は、なんとなくの自信を与えてくれます。
筆者自身も半年に1回くらい読み返してはその度にじわじわ理解が深まっている気がする、味わい深い本です。
以上
以上、5冊のRuby本を紹介しましたが、あくまで著者の読んだことのある本の中から選んだに過ぎません。他の良い本をご存じの方は、別途記事として取り上げますので、教えて頂けると嬉しいです。