第1章 月曜日: オブジェクトモデル - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki
メタプログラミングruby読書会::第1章
構成
- イントロダクション
- 1.1 ビルと一緒の月曜日
- 1.2 オープンクラス
- 1.2.1 クラス定義の中身
- 1.2.2 オープンクラスの問題点
- 1.2.3 猿マネとモンキーパッチ
- 1.3 クラスの真実
- 1.3.1 オブジェクトの中身
- 1.3.2 クラス再訪
- 1.3.3 定数
- 1.3.4 オブジェクトとクラスのまとめ
- 1.4 クイズ: 引かれていない線
- 1.4.1 クイズの答え
- 1.5 メソッドを呼び出すときに何が起きてるの?
- 1.5.1 メソッド探索
- 1.5.2 メソッド実行
- 1.6 クイズ: 絡み合ったモジュール
- 1.6.1 クイズの答え
- 1.7 オブジェクトモデルまとめ
はじめに(@mackato)
- アンケート結果はRails3/メタプログラミングRubyは同じくらい
- 1回に1章くらい予定だが、様子をみつつ
- とりあえず音読で進める
- 今回はモデレータ: @mackato、議事ロガー: @suchi
- さいごにふりかえり(@suchi)
- IDは敬称略
疑問と会話
あらかじめ判らない部分や課題があればここに書く。
- イントロダクション
- 35分かかった
- 1.1
- この節からは黙読してみる
- 1.2
- 1.3
- p.46 インスタンスメソッドとメソッドの説明。「着目して」の意味がわからず悩んだ (suchi)
- 同じものをコンテキストによって呼び名が変わるということ
- p.46 「String.methods で返ってくるもの」=「Stringのクラスメソッド」? (kiwofusi) →○
- p.52 コラム「定数ツリーの枝刈り」の「枝刈り」とは? →loadのfalseオプションのこと
- この節から熱い
- p.46 インスタンスメソッドとメソッドの説明。「着目して」の意味がわからず悩んだ (suchi)
- 1.4
- p.56 「自身のインスタンス変数@xを渡している。このやり方には驚くかもしれない」の驚きを教えてください。 (kiwofusi)
- クラスではなくインスタンス自体に定義していること
- 答え合わせ
- p.56 「自身のインスタンス変数@xを渡している。このやり方には驚くかもしれない」の驚きを教えてください。 (kiwofusi)
本日はここまで以下次号(→議事録#3)
-
1.5
- p.63 「すべてのインスタンス変数はselfのインスタンス変数になる」の意味がわからない(suchi)
- p.64 「トップレベル」の「mainと呼ばれるオブジェクトの内部にいる」→mainはどこで定義されている? (suchi)
-
1.6
- p.68 メソッド探索しているあいだ、selfはbオブジェクトに固定されている、でおk? (kiwofusi)
- p.68-69 「上記のコードでは、Bookクラスの ancestors() メソッドが暗黙的に呼び出される(中略)クラス定義の中では、クラスが self だから」の意味がわからない。 (kiwofusi)
- 追記:Bookクラスのなかでancestorsを実行しているが、このancestors = self.ancesotrs = Book.ancesotrs である、ということかな。ancestorsは暗黙的にBook.ancestorsである、と。 (kiwofusi)
-
errata
- p.63 下から2行目
@val
→@var
- p.64 最初の行
testing_sefl()
→testing_self()
- p.63 下から2行目
#その他
- コードは黙読
- コードブロック説明は?
- 現状理解できない人は? →いない
- とりあえず保留
自己紹介
- @ktachibana
- @yowasou
- @kiwofusi
- @naoya_24
KPT
Try
- メタプログラミングRuby継続
- テキストがんばって入手
- 予習は必須ですね
- Wiki事前記入を生かす。識者は回答も考えておく
- 問題を考えてくる
- ポジションペーパーをみんな作ってこよう
- 立場表明書(この場にいる自分の考え/立場を簡単に伝えられる)
- Google Documentやblogの記事のリンクでOK
- http://qwik.jp/etocomd/PositionPaper.html
- その他
- ローカルリファレンス → ri/refe
- 軽食を持ってくる
- PC持っていない人は持ってる人の近くに
フィードバック
- メタプログラミングを1ミリも知らない俺がRubyの魔術に手を染めてみた - 反言子 (kiwofusi)