書籍紹介『現場で使えるRuby on Rails5速習実践ガイド』

はじめに

こんにちは。株式会社万葉の仲間と一緒にコツコツ書いていた『現場で使えるRuby on Rails5速習実践ガイド』という本を、昨年 2018/10/19 に出版しました。ということで、この場をお借りして宣伝させてください。

近年、私の周りでは、他言語製のシステムをRailsに移行するとか、他言語の経験はあるが Ruby, Rails をまだ経験したことのないプログラマがRailsのプロジェクトに加入するといったケースをよく見るようになりました。そのため、経験者も含めた多くのプログラマが、実践的な知識を身につけられるような、現場でそのまま使える「現場Rails」本を世に出せたら良いなあ、というモチベーションで執筆してきました。

一方で、Railsの書籍として実践的なトピックを扱うことはとても難しいという直感は執筆初期からありました。なにせRailsの取り扱う知識は広大なものですから、丁寧に論じようとするとそれだけで辞書のような分厚い本になってしまいます。そこで、説明するトピックを現場でよくあるものに絞ってコンパクトにしつつ、読者が本書を超えて自力でステップアップできるような工夫を散りばめました。まさに「速習実践」というわけです。

おかげさまで売れ行きも好調で、(本記事執筆時点で)第2刷も発行されました。ありがとうございます。とはいえ、この記事を読んでくださっている方の中には購入されていない方も多くいらっしゃるかと思います。そこで、本記事ではどのようなことを目的としたどんな内容の本なのかを、簡単に紹介させていただきます。

目的とターゲット

本書の目的は、大きく分けて以下の2つを達成することです。

  • プログラミング初心者がRailsを使ってWebアプリケーションを作れるようになること
  • プログラミング経験者がRailsらしい書き方を身に着け、中級者以上にステップアップすること

もちろん初心者にとっては1回で後者まで達成することは難しいでしょうから、まずはWebアプリケーションを作れた!という体験を得てもらって、経験を積んだあとにもう一度読んでもらうことで新しい学びを得られたらなと思います。

ところで、「Railsで開発できる」ようになるには、どのような知識が必要になるでしょうか。ちょっと考えてみましょう。

  • Rubyのコードを書いていくことになりますので、Rubyの使い方を知っておきたいですね
  • Railsがどのような機能を持っているのかも知っておきたいでしょう
  • 意図しない実装を行ってしまうことを早めに防ぐためのコツも身に付けておきたいですね
  • 様々なgemを利用することもありますので、gemの使い方や探し方も知っておきたいでしょう
  • JavaScriptを利用するアプリケーションであれば、RailsとJavaScriptを組み合わせて使うためのコツも必要になります
  • チームで開発するのであれば、チーム開発の進め方も知っておきたいです
  • 長期的に運用していくならば、メンテナンスしやすい設計ができると良いでしょう

このように、ちょっと考えただけで様々なことが思い浮かんできます。

しかし、プログラミング初心者に同じ質問をしたら、答えるのは難しいでしょう。また、プログラミング経験者であっても、RubyやRailsを初めて触る場合には、同じく難しい質問になると思います。仮にどのような知識が必要になるかはわかっても、どのような順番で、どのようにして勉強をしたら良いのかはわからない方も多いかと思います。

そのため本書では、プログラミング初心者でも効率的に学習できるように、Railsで必要になる知識を、執筆陣がお勧めする順番で、実際に手を動かしながら、体系的に学べるようにしています。特に「Railsで開発できるようになりたいけど、どうしたら効率よく学習できるかわからない」といった方におすすめしたい内容になっています。また、同様にRailsを教える役割を持つ方にとっても参考書として使えると思います。

本書の構成

以下のような構成になっています。

<入門編>
Chapter 1. RailsのためのRuby入門
Chapter 2. Railsアプリケーションをのぞいてみよう
Chapter 3. タスク管理アプリケーションを作ろう

<レベルアップ編>
Chapter 4. 現実の複雑さに対応する
Chapter 5. テストをはじめよう
Chapter 6. Railsの全体像を理解する
Chapter 7. 機能を追加してみよう

<発展編>
Chapter 8. RailsとJavaScript
Chapter 9. 複数人でRailsアプリケーションを開発する
Chapter 10. Railsアプリケーションと長く付き合うために

それぞれの章の内容について、簡単に紹介します。

Chapter 1. RailsのためのRuby入門

文字列の作り方、配列の作り方、クラスの作り方など、これからRailsを使うために必要になる最低限のRubyの知識を説明している章です。

「Ruby 以外のプログラミング言語を使ったことがあるけれど Ruby は初めて」という方はこの章から読むことをお勧めします。

オブジェクト指向プログラミングについての説明も数ページかけて説明していますので、オブジェクト指向プログラミングに慣れていない方もきっと勉強になるかと思います。

Chapter 2. Railsアプリケーションをのぞいてみよう

Scaffold 機能を使って最小の Rails アプリケーションを生成して、モデルやビューやコントローラの役割について学ぶ章です。コードを「書く」よりも「見る」ことにフォーカスして、Rails アプリケーションの全体像を手早く把握します。

「Ruby は触ったことがあるけれど、Rails は全く触ったことがない」「MVC のWebアプリケーションフレームワークを使うのが初めて」という方はこの章から読むことをお勧めします。

Chapter 3. タスク管理アプリケーションを作ろう

この章から本格的に Rails アプリケーションを作っていきます。

シンプルなタスク管理アプリケーションの作成を通じて、CRUD と呼ばれるソフトウェアの基本的な機能を Rails で実装する方法について学んでいきます。ここでは検証などの細かいところは飛ばして、できるだけシンプルに一通り作ることを目指します。

Chapter 4. 現実の複雑さに対応する

3章で作成したシンプルなアプリケーションに、現実で求められるようないくつかの機能を追加していきます。

具体的には「データ内容の制限」「検証」「コールバック」「フィルタ」「ログイン機能の追加」「関連」「検索」について解説していきます。

Chapter 5. テストをはじめよう

この章では「自動テスト」について説明し、Rails アプリケーションの自動テストをどのように実装するかを解説します。実際に RSpec を使って System Spec を実装しながらテストの基礎を学びます。

Chapter 6. Railsの全体像を理解する

Railsの備える機能や、Railsを取り巻く世界の全体像を改めて一望し、これまで取り上げる機会のなかったいくつかの重要な要素について解説していきます。

これまでの章でRailsの機能の詳細を見てきたので、この章で一度俯瞰して、どのあたりを学んできたのかを整理します。そのうえで他にどんなことが必要で、Railsではどのように実現するのかを学びます。

Chapter 7. 機能を追加してみよう

Railsアプリケーションで比較的よくある具体的な機能を実現するやり方を、6章までで作成したアプリケーションへの機能追加という形で紹介していきます。読者の目的に応じたレシピブックとしての役割を持つ章です。

この章までコードを書きながら進めれば、ある程度 Rails アプリケーションの基本的な開発に慣れた状態になるかと思います。

Chapter 8. RailsとJavaScript

この章からは、Railsをある程度知っている人が足りないエリアを補充する内容になっています。

Railsを利用する際のJavaScriptの扱い方について解説していきます。モダンなJavaScriptについても扱っています。

Chapter 9. 複数人でRailsアプリケーションを開発する

複数人で開発を行う場合に重要になってくる知識や、注意すべきポイントについて解説していきます。

実際の現場ではチームで開発することがほとんどなので、「一人でコードを書く」段階からスムーズに移行するためのガイドになるようにしました。

Chapter 10. Railsアプリケーションと長く付き合うために

Railsアプリケーションと長く付き合っていくために特に重要なテーマとして、「バージョンアップに対してどのように取り組むべきか」「Railsアプリケーションコードが複雑になっていくことにどうに立ち向かい、メンテナンスしやすい状態の維持を図るのか」について扱います。

Rails経験者にとってもたのしく読めるのではないかという内容になっています。

本書で工夫したこと

本書では、読者が「学ぶこと」と「考えること」をバランスよく行えるような構成にしています。たとえば、最初に表や図で全体像を示し、その後に実際にコードを書いてアプリケーションを育てていくとか、最初に選択肢を網羅し、その後に具体例を示す、といった具合です。これは「学ぶこと」と「考えること」を交互に行き来することで、体系的な知識の「広さ」を学びながら、その知識の実際の「深さ」を経験することを狙っています。

また、Railsの扱う知識は広大で深い海のようなものです。そのためすべてを取り扱おうとすると辞書のようになりますし、1つのトピックでも掘り下げようとすればどこまでも深くなります。そのような中で「Railsで開発できる」ことにフォーカスをした内容を、筆者陣がおすすめする順番でまとめました。一方で、説明しきれなかった部分や本文に入れると流れが悪くなってしまうような話題は、脚注で補足したり概念を図示したりキーワードを取り上げたりと、次のステップアップのための足がかりとなるようにしました。

以上のように、筆者たちが経験した現場の知識をまとめ上げたのが『現場で使えるRuby on Rails5速習実践ガイド』です。Railsを学習したい方も、教育する立場の方も、復習したい方も、ぜひ本書を現場で使っていただければと思います。

※本書を読んでの感想や気になることについて、Twitter のハッシュタグ #現場Rails でつぶやいていただけるとうれしいです!

著者について

松本拓也 (@upinetree)

新潟県長岡市出身のプログラマ。株式会社万葉にて Ruby on Rails で Web アプリケーションを作るお手伝い(受託開発)をしています。最近ハマっているのはドラクエビルダーズ2。