メタプログラミングの魔法を身につけよう!
【概要】 メタプログラミングは強力なRubyの機能ですが、習得が難しいと言われていました。本書はメタプログラミングに必要なすべての概念を明確に、平易に解説。Rubyの最も複雑な秘伝を簡単に身につけましょう。
【目次】 序文 謝辞 はじめに 本書について 謝辞 イントロダクション 頭文字M 本書について 想定読者
第1部 メタプログラミングRuby 第1章 月曜日:オブジェクトモデル 1.1 ビルと一緒の月曜日 1.2 オープンクラス 1.3 クラスの真実 1.4 クイズ:引かれていない線 1.5 メソッドを呼び出すときに何が起きているの? 1.6 クイズ:絡み合ったモジュール 1.7 オブジェクトモデルのまとめ 第2章 火曜日:メソッド 2.1 重複問題 2.2 動的メソッド 2.3 method_missing() 2.4 クイズ:バグ退治 2.5 もっとmethod_missing() 第3章 水曜日:ブロック 3.1 水曜日の過ごし方 3.2 クイズ:Ruby# 3.3 クロージャ 3.4 instance_eval() 3.5 呼び出し可能オブジェクト 3.6 ドメイン特化言語を書く 3.7 クイズ:より良いDSL 第4章 木曜日:クラス定義 4.1 クラス定義のわかりやすい説明 4.2 クイズ:クラスのタブー 4.3 特異メソッド 4.4 特異クラス 4.5 クイズ:モジュールの不具合 4.6 エイリアス 4.7 クイズ:壊れた計算 第5章 金曜日:コードを記述するコード 5.1 道案内 5.2 Kernel#eval 5.3 クイズ:属性のチェック(手順1) 5.4 クイズ:属性のチェック(手順2) 5.5 クイズ:属性のチェック(手順3) 5.6 クイズ:属性のチェック(手順4) 5.7 フックメソッド 5.8 クイズ:属性のチェック(手順5) 第6章 エピローグ
第2部 Railsにおけるメタプログラミング 第7章 ActiveRecordの設計 7.1 観光ツアーの準備 7.2 ActiveRecordの設計 7.3 学んだ教訓 第8章 ActiveRecordの中身 8.1 動的属性 8.2 動的ファインダ 8.3 ここで学んだこと 第9章 安全なメタプログラミング 9.1 メタプログラミングのテスト 9.2 モンキーパッチを防ぐ 9.3 学んだこと
第3部 付録 付録A よく使うイディオム A.1 ミミックメソッド A.2 nilガード A.3 メソッド引数のトリック A.4 自己yield A.5 Symbol#to_proc() 付録B ドメイン特化言語 B.1 ドメイン特化言語の事例 B.2 内部DSLと外部DSL B.3 DSLとメタプログラミング 付録C 魔術書 C.1 魔術 付録D 参考書 付録E から騒ぎ E.1 Nullオブジェクト E.2 Rubyの強みを活かす E.3 Nullオブジェクトの向こう側 著者・訳者紹介 索引
【著者プロフィール】 Paolo Perrottaは、ソフトウェアの設計・開発に10年以上携わっており、これまでに数百もの技術記事を執筆している。Rubyと恋に落ちる前は、Java、C++、C#を使っていた。アジャイル方法論・プラクティス・テクニックの早期導入者であり、インターネットファッション企業であるYoox社において、アジャイルチームのコーチを務めている。また、ヨーロッパ各地で開発者の教育も行っている。出張がないときは、彼女と猫と一緒に暮らすイタリアの自宅でRubyに没頭している。
|