書籍について
タイトル | Effective Ruby |
著者 | Peter J.Jones (著), 長尾 高弘(翻訳) |
発行日 | 2015/01/08 |
ページ数 | 320ページ |
価格 | 3456円 |
Amazon | https://www.amazon.co.jp/dp/B00SF6JN4K/ |
目次
概要
本書はRubyの入門書では無く、一歩進んだRubyの活用方法48種がまとまった一冊。
といっても、上級者向けの内容ではなく、Rubyの入門書を一冊終えて、日常的にRubyを使い始めた人が「もう少しRubyを使いこなしたいな」と思った時に読むべき内容。
第1章 Rubyに体を慣らす
第1章ながら、読者がRubyの深い世界への第一歩を踏み出すためのノウハウが少ないページにふんだんに詰まっている。
「Rubyは何が真で何が偽か?」「Rubyのオブジェクトはnilである可能性がある(NULL安全でない)」「定数が定数でない」「Perlの名残を持っている」といった、Rubyならではの概念に関して大雑把に触れている。Rubyを突き詰めたい人にとって、Rubyが他の言語と違いどんな風味を持っているのかを第1章で感じ取ることができる。この章で「Rubyってやっぱり面白いな」と思った人こそ、そのまま第2章、第3章と進んで欲しい。
第2章 クラス、オブジェクト、モジュール
言うまでもなくRubyはオブジェクト指向言語だが、その仕組は他の言語とは大きく異る。継承階層をどのように組み立てているのかを理解した上で、どういったクラス、オブジェクト、モジュールの使い方をするのがベストか、そのノウハウが詰まっている。
第3章 コレクション
Rubyにおけるコレクション(Array,Hash)は、Rubyで開発を行う上では必須といえる構成要素だが、Rubyはそれを支援する様々な機能を持っている。第3章では具体的なコレクションの使い方のTipsが多く含まれ、ここまでで最も即活用できる内容になっている。なんならこの章だけを読んでも得られるものが大きいとも言える。
第4章 例外
Rubyの例外処理の関して。個人的には少々物足りない、基本的な例外の使い方に関してだった。
第5章 メタプログラミング
著者が最も力を入れているのはこの章ではないかと読んでてひしひし感じた。
Rubyは全てがオブジェクトであるという、Rubyの最大の特徴をご存知だろう。では全てがオブジェクトとはどういうことか。それは後から自在に書き換えられるということで、それはメタプログラミングにこれ以上になく適した言語ということだ。本性ではメタプログラミングの基本的な内容が丁寧にかかれている。この章を読んでRubyのメタプログラミングに興味を持ったら、それだけで一冊になっている書籍が幾つかあるのでそちらに手を出してみるとよい。
第6章 テスティング
本書ではテスティングにMiniTestを用いている。テストに関してはざっくりと触れられているだけで、具体的なテスト手法を身に着けたい人には少々物足りない。というかMiniTestよりRSpecを使いたい。
第7章 ツールとライブラリ
主にirbとbundlerについて。正直irbよりpryを使ったほうが遥かに捗るので、これを読んで実践するよりはpryを導入した方が良いと思った。bundlerの使い方はかなり丁寧に書かれている。大規模開発を行う上では必須の依存管理のノウハウが詰まっているので、必要に応じて読むと良い。
第8章 メモリ管理とパフォーマンス
最終章にしてかなりコアな内容に。Rubyではガーベジコレクタがどのように動いているのか、それを知った上でどのようにコーディングすればメモリを節約できるのかについて書かれている。また、パフォーマンスを向上させるためのコーディングテクニックについても振れられているが、これはおまけ程度だ。
総評
Ruby歴2年ほどの私が読むのにかなり適していると感じた。メタプログラミングの章と、メモリ管理の章は少し難しく、流し読みになってしまったが、それ以外の章は得られるものがかなり多かった。
全部読もう、全部理解しようと気を張らずに、RubyのTipsを得たいなぐらいの気持ちで読んでみると意外な発見が得られて良いと思う。