すがブロ

sugamasaoのhatenablogだよ

パーフェクト Ruby on Rails 【増補改訂版】が7/25に発売します

Rails 6.0に対応したパーフェクトRuby on Rails

f:id:seiunsky:20200619001958j:plain

一部の書店では早売りでもう店頭に並んでいるところもあるようですが、7/25に発売します。

目次はこんな感じになっています。

■Part1 Rails ~ overview

1章 Ruby on Railsの概要
1-1 Railsを使う前に
1-2 Railsの思想
1-3 Railsをはじめよう!!
1-4 scaffoldを使ってRailsでの開発を体験しよう

2章 Ruby on RailsとMVC
2-1 MVCアーキテクチャ
2-2 モデルを扱う
2-3 コントローラの役割
2-4 コントローラとビューの協調とビューテンプレートの基本
2-5 ビューテンプレートについて

3章 押さえておきたいRailsの基本機能
3-1 テストの種類と実行方法
3-2 RackとRailsの関係
3-3 DBを管理する
3-4 秘密情報を管理する
3-5 HTTPとRailsアプリケーション

■Part2 Railsの周辺知識

4章 フロントエンドの開発手法
4-1 Webpackerを使ってJavaScriptを管理する
4-2 SprocketsによるCSSの管理
4-3 Railsに組み込まれているJavaScriptの機能
4-4 控えめなJavaScriptフレームワークStimulus

5章 Rails標準の機能を活用して素早く機能実装する
5-1 Active Jobによる非同期実行
5-2 Active Storageによるファイルアップロード
5-3 Action Mailerによるメール送信
5-4 Action Mailboxによるメール受信
5-5 Action Textによるリッチテキスト機能
5-6 Action Cableによるリアルタイム通信

■Part3 Webアプリケーション開発

6章 Railsアプリケーション開発
6-1 イベント告知アプリケーションを作る
6-2 アプリケーションの作成と下準備
6-3 OAuthを利用して「GitHubでログイン」機能を作る
6-4 イベントの登録機能を作る
6-5 イベントの閲覧機能を作る
6-6 イベントの編集・削除機能を作る
6-7 登録されたイベントへの参加機能,参加キャンセル機能を作る
6-8 退会機能を作る
6-9 おわりに

7章 Railsアプリケーションのテスト
7-1 テストコードをどう書いていくか
7-2 minitestとRSpec
7-3 テストデータを作成する
7-4 システムテスト
7-5 コントローラに対する機能テスト
7-6 モデルに対するテスト

■Part4 Railsアプリケーションの拡張・運用

8章 Railsアプリケーション拡張
8-1 ファイルアップロード機能を作る
8-2 gemで機能拡張をする
8-3 落穂ひろい

9章 コード品質を上げる
9-1 CI(継続的インテグレーション)
9-2 Gemの定期update
9-3 静的解析
9-4 カバレッジ測定
9-5 アプリケーションパフォーマンス測定(APM)

10章 コンテナを利用したRailsアプリケーションの運用
10-1 Railsアプリケーションのインフラ概要
10-2 基本的なDockerイメージの構築
10-3 開発環境におけるDockerの活用
10-4 環境によって可変する設定値や秘匿情報の管理
10-5 ログ出力
10-6 HTTPサーバとの通信

■Part5 エキスパートRails

11章 複雑なドメインを表現する
11-1 アーキテクチャパターンから見るRails
11-2 値オブジェクト
11-3 サービスオブジェクト

12章 複雑なユースケースを実現する
12-1 ユースケースとモデル
12-2 データベースと紐づかないモデルを作る
12-3 フォームオブジェクト
12-4 プレゼンター

13章 複雑なデータ操作を実装する
13-1 Concern
13-2 コールバックオブジェクト

■Appendix Railsの開発環境構築
A-1 WindowsでのRubyとRails環境
A-2 Rubyのインストール

gihyo.jpではEPUB/PDF形式の電子書籍を購入することができます。 gihyo.jp

また、Amazonでは物理本だけでなくKindle版も購入できます。

本書の見どころ

初版から比べると100ページくらい増量しているので、なかなかボリュームのある書籍となっております。 改訂版に伴い、単にRuby/Railsのバージョンを上げただけでなく、現代のWebアプリケーション開発で通じるように再構成を行っています。

追加した部分、削除した部分などありますが、初版パーフェクトRailsを読んだことがある人むけ今北産業+1すると

  • Ruby/Railsのバージョンアップに伴い、新機能*1を反映
  • CoffeeScript(!!)などの解説はやめてWebpackerを主体とした解説に変更
  • インフラに関する話をChefなどのサーバー構築を行う文脈からコンテナ向けへ変更
  • アプリケーションのテストをRSpecからminitestへ変更

という感じです。

また、機能的な部分での改訂だけでなく、既存の機能に関する文章もブラッシュアップしています。 Railsの基本的な部分なんて大して変わってないでしょ?と思うかもしれませんが、たとえばrakeコマンドではなくrailsコマンドを使うだとか並列テストが組み込まれたことや複数DBに対応するrakeタスクの追加があったりするので、それなりに現代の内容へ置き換える必要がありました。そのついでにいろいろ書き直したりしたので、復習がてらチラ見するのも良いかもしれませんね*2

他に目次レベルで目を引く部分として、初版では便利gemの紹介に1つ章を割いていましたがそれは辞めてAction Mailerなどの便利コンポーネントについての解説を行っています。ここら辺は紹介しているgemがRails本体に組み込まれたなども要因ですが、標準機能をきちんと解説してRails Wayにのっとってイイ感じに開発を進められるためのサポートを行いたいというメッセージでもあります。

本書が出版に至るまで

初版から6年経っているのは様々な事情でグズグズしていた結果なのですが、グズグズしていた結果、パーフェクトRailsの準備としてムック本出しましょう!!!!!!!!!1という超展開になったのが「Ruby on Rails 6 エンジニア養成読本」だったんですね。

……そう、つまり👇のツイートは完全に核心をついた言葉で、実際にパーフェクトRuby on Railsではこのムック本に書いた内容から転生した文章もいくつかあります(この時のigaigaさんはまさか自分が巻き込まれるとは思っていなかったでしょう、ガハハ)。

それはそれとして

今回の改訂版執筆にあたり、心強いメンバーとして共著に参加してくださった @igaiga555さん、@_yasaichiさん、ありがとうございました。厳しい戦いを乗り越えることとができたのはお二人の協力があってのことです。

また、時間がタイトな状況にもかかわらず本書のレビューをしていただいた@koicさん、@y_yagiさん本当にありがとうございました。有識者による助言は本当にありがたく、大変助かりました🙇‍♀️🙇‍♀️🙇‍♀️

そして、本書を手に取っていただけた方へ。本書を読んで、少しでも得るものがあったと思っていただければ幸いです。

*1:Action Mailerや複数DBについてなど

*2:たとえば2章はRailsの基礎を解説していますが、初版から比べると20ページくらい増えてますね。今気がついた。ウケる