メタプログラミングRuby 付録E から騒ぎ

付録E では nil オブジェクトを題材にしています。

  • 「今までに見た NullPointerException の数を憶えているか?」
  • Null オブジェクト(NullDevice クラス)を作って、何もしないメソッドを定義する
  • 「Null オブジェクトは Java っぽい」
  • NilClass に直接必要なメソッド(ただし何もしない)を追加してしまう(「オープンクラス」)
  • NilClass に method_missing を追加して何でも呼べるようにしちゃう。さすがにちょっとやりすぎ感が
  • nil へのメソッド呼び出しは nil を返すのでメソッドチェーンもできる
  • バグに気がつきにくくなる危険もあるのでほどほどに

以上で「メタプログラミングRuby」は読み終えました。最近読んだ Ruby の本では役立ち度と面白さの両方で非凡な楽しい本でした。この流れで DSL 本に期待しつつ。

次は、Ruby の書籍が続いてしまいますがオライリーの「Rubyベストプラクティス」がまだ積ん読状態なのでこれを読もうと思います。