せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】パーフェクトRuby 学習感想文 ~第6章

それでは6章を読んでいきます。

(参考・経緯など)
パーフェクトRuby 学習感想文 ~はじめに

全体的に

6章もすごく読みやすかった!


 

P230 メタプログラミングとは?

6章から「メタプログラミング」を扱うのですが、
そもそも「メタプログラミング」とは何かの説明がなく。

リフレクションのことかなと思っていたのですが、
以下の種類があるみたい。

  • 動的にクラスを生成する
  • 動的にメソッドを生成する
  • リフレクション

まつもとゆきひろさん曰く、

 メタプログラミングとは、プログラミングをプログラミングすることです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070604/273453/

そうですか。
JavaScriptにも関数渡しがありますが、あれもメタプログラミングの一種なのか。


 

P242 誤植だと思う

誤: Module#define_method を使用しすれば、
正: Module#define_method を使用すれば、


 

P242 例がちょっと見づらいのよね・・

6~8章で記載されている例はこういう感じ

class Klass
	define_method :instance_method, ->{ :instance_method }
end

これ、define_methodは本当の組み込み関数名で、instance_methodは例の名前。
ちょっと分かりづらい。

こうやって書いてたら良く分かるんだけどな。。

class Klass
	define_method :hoge, ->{ :hoge }
end

9章の例は下のパターンで書いてあって分かりやすかったです。
著者が違う人なのかな?


 

P263 誤植だと思う

誤: Refinementsのファイル単位とうい制限が
正: Refinementsのファイル単位という制限が


さくさくと終了。