「プロを目指す人のためのRuby入門 [改訂2版]」は既に仕事でRubyを使っていても新しい発見がある

はじめに

今回「プロを目指す人のためのRuby入門 [改訂2版]」のレビューアをさせて頂いたので、本書を読んだ感想を書きます。

プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plus) | 伊藤 淳一 |本 | 通販 | Amazon

僕は、「プロを目指す人のためのRuby入門 [初版]」は電子書籍で購入しました。 ただ、電子書籍あるある?で、買ったは良いけど積読になっていました。 今回は改訂2版が出版されるということで、今度こそ読むぞという強い気持ちを持ってレビューアに手を上げました。

本書の対象読者

タイトルに「入門」と入っているのでRuby初心者またはプログラミング初学者向けのように受け取られやすいのかもしれませんが、実は対象読者はもう少し広いようです。本書のまえがきにも次のように書かれています。

  1. すでにほかのプログラミング言語で業務経験がある。もしくは独学やプログラミングスクールなどで、簡単なプログラムを作ったことがある。
  2. Railsアプリケーションが作れるようになりたいと考えている。
  3. すでに仕事でRubyを使っている。もしくはこれからRubyを使った仕事に就きたいと考えている。

「プロを目指す人のためのRuby入門 [改訂2版] まえがき」から引用

つまり、初学者だけではなく既に業務でRubyを利用している人も対象読者に入っています。

僕のRubyレベル

僕のRuby歴は7年位になります。実は、著者の伊藤さんと同じ職場で働いています。

ソニックガーデンギルドに入りました

その他のプログラミング言語を含めると、業務でのプログラミング歴は15年ほどになります。

Rubyの豊富なメソッドをすべて把握していますか?

さて、ここで突然質問です。 あなたはRubyのすべてのメソッドを把握していますか?

すべてのメソッドを把握していなくても基本的なメソッドさえ覚えていれば業務でRubyを書くのに困ることはありません。 ただ、Rubyには本当に便利なメソッドがたくさんあります。 それらのメソッドを知っていると少し短く、少しスマートに書けることが多々あります。

例えば、7➗4の割り算をして商と余りを求める必要がある時にはどうやって書きますか? 単純に書くとこんな感じでしょうか。

a = 7 / 4 # 商
b = 7 % 4 # 余り

でも、本書に書いてあるRubyのdivmodを使えば、2行で書いていたものが1行で書けるようになります。

a, b = 7.divmod(4) # 商, 余り

たかが1行、されど1行。

こういった便利なメソッドを知らずに使えないのと、知っていて使わないのでは大きな違いがあると思います。

他にもRubyの配列には便利なメソッドがたくさんあります。 未だにコードレビューで新しい使い方を知ることもあります。

Ruby 3.0で新たに追加されたパターンマッチ構文

パターンマッチ構文はRuby 3.0で新たに追加された構文です。 まだ業務で実際に使用したことはありませんが、必要な時に使えば読みやすいコードが書けそうです。

例えば、本書で紹介されている日付のコードを見るとパターンマッチ構文の便利さがよく分かります。 データとして次の様な配列データがあるとします。

この様な配列データに対して、年月日の形で出力したいとします。不足するデータについてはその年の1月、その月の1日を返すとします。つまり次のようなデータを出力として取りたいとします。

パターンマッチ構文を使わない書き方だと次のように書けます。

しかし、パターンマッチ構文を利用すれば次のように書けます。

パターンマッチ構文を使わない場合と比べると行数は変わりません。 しかし、パターンマッチ構文を使うとwhenの部分が、どういったパターンの条件なのかが分かりやすくなりました。 そして、パターンにマッチしたものをそのまま変数として利用できるので、結果の出力が非常にシンプルに書けるようになりました。 素晴らしい!

まとめ

本書は既に業務でRubyを利用している人であっても、「Rubyでもっとスマートに書きたい」「Rubyを網羅的に学び直したい」と思う方には新しい発見ができる本だと思います。

技術本を紙の本や電子書籍で買った場合のデメリットとしては、技術の進歩が速すぎて本の情報がすぐに古くなることです。 しかし、本書が扱っているのはプログラミング言語そのものであり、書かれている事が殆ど古くなって使えなくなったり大きく仕様が変わることはあまり無いでしょう。

なによりも、著者の伊藤さんは本に対していつも真剣に取り組まれています。 今後のRubyのバージョンアップによる新たな言語仕様に対しても改訂第3版、改訂第4版と出版してくれるでしょう。(僕の勝手な希望です)

プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plus) | 伊藤 淳一 |本 | 通販 | Amazon

後は、伊藤さんのTwitterやQiitaをフォローしておけば最新の情報や本の解説もしてくれるので本書を買った方はフォローしておくことをおすすめします!

Junichi Ito (伊藤淳一)さん (@jnchito) / Twitter

jnchito - Qiita

Let’s enjoy Ruby programing!