きりかノート 3冊め

おあそびプログラミング

2つの逆引き本「Ruby逆引きレシピ」「Ruby逆引きハンドブック」

最近出版された、2冊のRubyを冠した"逆引き"本。「似たような本で、どっちか買えばいいかな〜」と考えている人もいるかもしれないけれど、ぜんぜんちがう。「レシピ」はプログラムを書く前に見る本、「ハンドブック」はコード書くときに見る本、という位置づけになる。たぶん。

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

Ruby逆引きハンドブック

Ruby逆引きハンドブック

それぞれを主観満載で紹介しよう。

Ruby逆引きレシピ」

ええと、この本はマジやばい。すごすぎる。

職場とか学校で、Rubyに詳しい頼りになる先輩がいるっていうのは、こんな感じなんじゃなかろーかと想像する。「こういうことしたいんですけど?」と聞いてみると「ああ、これでできるよ」と一瞬で返ってくるような。

レシピ先輩(仮称)はいろいろなライブラリを知ってる。だから第1章の1.1に書いてあるのはRubyのコードの書き方じゃあなくて、有無をいわさずrubygemsをインストールして使う、ということだ。レシピ先輩はIRCをばりばり使う。だから第6章 ネットワーク処理のはじめは、ウェブじゃなくってIRC BOTのつくりかただ。レシピ先輩はいろいろなコミュニティに参加している。だから最後の第24章で伝えるのはコミュニティに参加する方法だ。

実用的なことで言えば、すでにそれなりの量のRubyプログラムが手元にある人は、導入してみたくなるネタがきっと見つかるはず。「プログラムを書く」ためだけでなく「使う」ためのRubyも充実してるしね。

うまく表現できないけど「Rubyの楽しさ」みたいのをすげー感じるのは、RubyKaigiの会場で購入したからじゃないはず。この本にあるようなことに広く通じた技術者ってのは、問答無用にかっこいいのだ!

Ruby逆引きハンドブック」

この本の特長は、もはやリファレンスなんじゃないかと思える網羅性の高さ(1.9にも対応!)とていねいな解説がまっさきに挙げられると思うけど、個人的にはもくじの「ONEPOINT」「COLUMN」のタイトル付けの的確さを主張したい。著者のるびきちさんのとこにもくじの全項目があるので、ちょっと見てほしい。

http://d.hatena.ne.jp/rubikitch/20090525/rubybook

具体的なコードになってくるCHAPTER 05以降は、各節のタイトルがやりたいこと、ONEPOINTがその方法、という構造になっていることがわかる。Rubyでのコーディングに慣れてくると、もくじがチートシートのように利用でき、各ページを開かなくてもよくなるようになるのだ。

ここでは例として、比較的短い「CHAPTER 09 時刻と日付」のぜんぶを抜き書きしてみよう。

CHAPTER 09 時刻と日付
185 現在時刻・日付を求める
ONEPOINT 現在時刻・日付を得るには「 Time.now 」や「 Date.today 」を使用する
COLUMN 特定の時刻・日付を得るには「 Time.local 」や「 Date.new 」を使用する
186 時刻・日付から情報を抜き出す
ONEPOINT Time ・ Date から情報を抜き出すには時間の単位名のメソッドを使用する
COLUMN 他の情報を抜き出すには
187 時刻・日付をフォーマットする
ONEPOINT Time ・ Date をフォーマットするには「 strftime 」メソッドを使用する
COLUMN 曜日の名称などを日本語にする
188 文字列から時刻・日付に変換する
ONEPOINT 文字列を解析して Time ・ Date に変換するには「 parse 」クラスメソッドを使用する
189 時刻・日付を加減算する
ONEPOINT 時刻・日付の計算をするには加減算を使用する

http://d.hatena.ne.jp/rubikitch/20090525/rubybook

「ONEPOINT」が答えそのものになっていることがわかるよね。実際の書籍では、もくじのONEPOINTのとこだけ赤になっていて、より分かりやすくなっている。

もし第二版がでるときには、もくじと同内容の小冊子を付録として付けると良いと思うのだよ(コストの関係で難しいかもしれないけれど)。すると、ふだんは小冊子をクイックリファレンス的に見て、わからないときに書籍を開く、という使い方もできるしね。それまではもくじをカラーコピーして綴じておくのがオススメ。カラーであることがじゅうよう。

ということで、もくじの素晴らしさについてばかり語ったけれど、本文の内容もおもしろい。前から順番に読むより、寝る前とかに拾いよみするほうが楽しさ的にいいよ。

結論

ということで、それぞれ守備範囲の異なる逆引き本となっている。実利を求めるなら、

  • プログラム作る前に「あれ?どうやればできるんだ?」であきらめてしまう人は「Ruby逆引きレシピ」
  • プログラム書きながら、ときどき手がとまってしまう人は「Ruby逆引きハンドブック」

が効果あるんじゃないかと。

Rubyが好きなら、両方を買えばいいと思うよ。