II部を読んだので、簡単な内容と感想を書いていく。最後に、読んでメモしたものを追記しておく。I部ではRubyのメタプログラミングの考え方や継承チェーンの仕組み、メソッドやイディオムの紹介が主な内容となっていた。メタプログラミングの技術を用いてどうやって実装されているかを学ぶ。SupportのConcernモジュールで、includeとextendメソッドを使ったトリックのメリットとデメリットをあげ、Concernモジュール内ではそのデメリットをどう解決しているかを実際のコードを読みながら学ぶことができる部分だ。いっても、実際に取り上げられるモジュールのコードはほんの1ファイルの一部だけなので、Railsの学習も兼ねて、ActiveSupportやActiveModelあたりのモジュールはざっくりコードリーディングしていきたいところ。あと、付録のCが「魔術書」となっていて、メタプログラミングのトリックやイディオムが33個書かれている。ここを読むだけでも、この本の価値はあるんじゃないかな。呼び出している行がある。endendモジュールがConcernをextendすると、extendedを呼び出す。オーバーライドすると、モジュールが一切インクルードされなくなる。「concern」を使うことにする。ActiveModel::Validationsも含めて、ほとんどのモジュールがconcernである。endendConcernの基本的な考え方。エクステンドしたモジュールがインクルードされたら、すべての依存関係をインクルーダーに一気に流し込む。インクルードしているモジュール。しれないし、そうではないかもしれない。エクステンドしたモジュールかどうかを確認したい。selfが意味するのはそういうことだ)継承チェーンに追加されていない場合インクルーダーに依存関係を再帰的にインクルードしていく。使って取得する必要がある。スコープで定数を読み込まなければいけないから。エイリアスの重複を取り除くことができるが、それ自身に問題がある。はてなブログPro1991年生まれ。大阪でWebエンジニアをしています。I部を読んだ月別アーカイブ検索はてなブログをはじめよう!ryskitさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。