株式会社クリアコード > ククログ

ククログ


パーフェクトRuby

2013年8月にRuby 2.0.0に対応したRubyの解説書が技術評論社から出版されました。

パーフェクトRuby (PERFECT SERIES 6)
Rubyサポーターズ/すがわら まさのり/寺田 玄太郎/三村 益隆/近藤 宇智朗/橋立 友宏/関口 亮一
技術評論社
(no price)

この本の特徴はなんといっても網羅性でしょう。600ページを超える紙面でRubyの基本的な機能から、2.0.0で新しく導入された機能、さらによく使われる標準添付のライプラリーとgemの解説をしています。長いことRubyを使っていますが、以下の機能はこの本を読むまで知りませんでした*1

  • #keep_if
  • Enumerator#feed
  • Tread#fork
  • MethodTransplaning
  • Method#parameters
  • Module#method_undefind

機能の説明にはサンプルコードと実行結果がついています*2。文章だけの説明でピンとこない場合でも、コードで理解できます。この本の一番優れているところはここでしょう。

サンプルコードと実行結果がついているため、実際に自分でRubyのコードを動かさなくてもどのような挙動になるかがわかります。そのため、PCの前にいなくてもRubyの挙動を確認できます。「自分で手を動かさないと理解は進まない!」派の人もいるでしょうが、電車の中のようにPCの前にいないときでも動作を確認しながら読み進められると便利な人も多いでしょう。

なんとなくRubyを触っている人のステップアップ用だけではなく、日常的にRubyを使っている人が最新の情報を仕入れるための用途にも便利な内容です。Rubyのことはだいたい知っているという人でも読んでみてはいかがでしょうか。なにかしら知らなかった機能が見つかることでしょう。

この本の特徴は網羅性ですが、それがネックでもあります。たくさんの情報を盛り込んでいるため、ページ数は600ページ超になっています。読むことが大変なのです。

機能の紹介は淡々と続いていきます。どうしてこの順番で解説しているか、そのようなストーリーの説明はあまりありません。おそらく、解説したい情報がたくさんあったのでしょう。そして、それらをできるだけ盛り込もうとしたらつながりを説明する余白がなくなったのでしょう。

サンプルコードは豊富にありますが、図はそれほどありません。説明でもコードでもピンとくる場合は多くあるでしょうが、そうでないこともあるでしょう。その場合、図で視覚的にイメージできると理解の助けになりますが、そのようなチャンスはそれほどありません。

Rubyの機能をあまり知らない人であれば「このような機能もあるのか!」という新鮮さがあるため、機能をどんどん紹介するというこの本の構成で楽しく読み進めていけるでしょう。しかし、すでに日常的にRubyを使っている人であれば、知っている情報がたくさんあるのでこの構成では飽きてしまうかもしれません。日常的にRubyを使っている人は流し読みをしながら見慣れない機能のところをかいつまんで読むのがよいでしょう。

Rubyの楽しさはあまり伝わらないかもしれませんが、網羅性ではたしかに「パーフェクト」といえるでしょう。この1冊でRubyの多くの機能を知ることができます。Rubyに興味がある人は読んでみてはいかがでしょうか。

*1 知ったからといって日常的に使う必要があるわけではない。本当にこれらを使うのが適切なときに思い出して使えれば十分。

*2 この本は複数の著者が書いていますが、サンプルコード内のサンプルの値やホームディレクトリのパスなどで誰が書いているかが透けてみえるのが興味深いです。

2013-08-19

«前の記事: インターンシップで学んだこと2:1人で開発しているときはていねいに開発を進める 最新記事 次の記事: インターンシップで学んだこと3:テストを整理する方法»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|