All Articles

【非初心者向け】Ruby と Rails をしっかり勉強するときのオススメ書籍

この記事では

  • 他の言語の経験があり、これから Ruby や Rails を学びたい方
  • Ruby や Rails の書き方が分かってきて、もう一歩しっかり学びたい方

におすすめの Ruby と Rails の書籍を紹介します。

Ruby の書籍

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで

Ruby の入門書で、通称「チェリー本」と呼ばれています。

まえがきに書かれている通り、対象読者はプログラミング経験がない方ではなく、他の言語の経験があって Ruby を学ぼうとしている方や、Ruby を学んでしばらく経ったがまだ自信が持てない方となっています。

この 1 冊で、Ruby の基本をしっかりおさえることができます。 この本を読んでから Rails を学ぶことで、どこまでが Ruby の文法で、どこからが Rails の機能なのかも理解しやすくなります。

コードの解説は TDD 的に行われているので、TDD の概要を学ぶこともできます。

他の言語の経験者が Ruby を学び始める際にも非常におすすめできる書籍です。

改訂2版 パーフェクトRuby

パーフェクトシリーズの 1 冊です。

こちらもプログラミング自体初めてという方を対象とした書籍ではなく、他の言語の経験があって Ruby を学ぼうとしている方などが対象読者となっています。

内容としては、Ruby の概要や言語仕様に始まり、メタプログラミングなどについても書かれています。 また、Rake や Gem、Bundler といった、Ruby 関係のツールについてもある程度ページを割いて解説されています。

個人的には Rack について解説されている点が非常に良かったです。 (Rack については後で紹介する『パーフェクト Ruby on Rails』でも解説されています)

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

Ruby によるオブジェクト指向設計の解説書です。

ダックタイピングなど、Ruby の特徴を活かしたオブジェクト指向プログラミングのポイントが非常に分かりやすく解説されています。

なぜそうするべきなのか、その設計によってどう改善されるのかなどを学ぶことができ、単に動くコードが書ける段階から、Ruby らしいコードを書けるようにステップアップするのにぴったりの書籍です。

Ruby の文法自体は分かってきて、どうすればコードがきれいになるのかを学びたい、といった際にとてもおすすめです。

Effective Ruby

「Effective シリーズ」の Ruby の解説書です。

Ruby の基本文法は分かっている前提で、より安全でメンテナンスのしやすいコードを書く方法が解説されています。

等値の違いを踏まえた実装や例外処理など、実践的なプログラミングで知っておくべきトピックがたくさん解説されています。

Ruby に慣れてきて、もう一歩しっかりしたコードが書けるようになりたいという際におすすめです。

メタプログラミングRuby 第2版

Ruby によるメタプログラミングの解説書です。

Ruby は他の言語と比べてもとても美しいオブジェクトモデルを持っており、それによって非常に強力なメタプログラミングの機能を実現しています。

そんな Ruby のメタプログラミングについて、全然知らない状態から基本が一通り理解できるように解説されています。

書籍の後半では Rails におけるメタプログラミングも解説されており、「Rails のようなフレームワークはどう実装されているのか」といった疑問を解消するにもぴったりです。

Ruby を使うのであれば一度は読んでおきたい、必読とも言える一冊です。

Ruby on Rails の書籍

パーフェクト Ruby on Rails 【増補改訂版】

こちらもパーフェクトシリーズの 1 冊です。

Ruby on Rails について、基本的な使い方から、周辺エコシステム、実践的な設計まで学ぶことができる、非常に素晴らしい書籍です。

他の言語・フレームワークである程度開発経験のある方であれば、この 1 冊だけで Rails をかなり理解できるのではないかと思います。

2020 年 8 月に第 2 版が発売されており、GitHub Actions や Docker などを利用した、2020 年時点の実践的な開発環境についても解説されています。

『パーフェクトRuby』と同様、Rack と Rails の関係についても解説されており、どこまでを Rack が担当しており、どこからが Rails の機能なのかなども理解できます。

最終パートでは、値オブジェクトやサービスオブジェクト、フォームオブジェクト、プレゼンター、Concern、コールバックオブジェクトを使った、実践的な設計についても解説されています。 どの手法をどのような場面で使うべきかも書かれており、設計への理解を深めるとっかかりにもなります。

「Rails の基本的な書き方は身に付けたものの、設計に自信が持てない」という方も、是非この本を読んでみることをおすすめします。

Ruby on Rails 6 実践ガイド

Rails の実践的な解説書です。 サンプルプロジェクトを実装しながら解説していくスタイルで、Rails の前提知識が多少ある方に向けた、実践的な内容になっています。

こちらの本でも、フォームオブジェクトやサービスオブジェクト、プレゼンターを使った実践的な設計について解説されています。

なお、サービスオブジェクトについては、『パーフェクト Ruby on Rails』とは少し異なる立場で解説されています。 「サービス」の使い方にはいろいろな立場があるので、注意して読み進めることをおすすめします。

このあたりの考え方の詳細は、「【難易度別】ドメイン駆動設計 (DDD) の書籍 +α のまとめ」という記事で紹介している書籍等を参照ください。

その他の良さそうな書籍

その他、私が未読の良さそうな書籍を 3 冊挙げておきます。

(どれもプログラミング自体初めてという方に向けた書籍ではないので、ご注意ください)

おわりに

この記事では、Ruby と Rails を実践的に学べる書籍を紹介しました。

プログラミングの勉強に慣れるまでは、基本的な書き方を理解した次のステップとして何を学ぶべきか分からない、ということも多いと思います。

そういった際は、この記事で紹介したような実践的な書籍を読んでみることをおすすめします。