give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

【翻訳】Rails 5およびRSpec 3.5対応版「Everyday Rails - RSpecによるRailsテスト入門」のアップデートについて

2017.6.22追記:英語版がアップデートされました

原著である英語版がアップデートされ、RSpec 3.6とRails 5.1に対応しました。
詳しい情報は以下のエントリをご覧ください。


2017.4.9 追記:4月時点でのアップデート状況について

もともと2月にアップデートできたら、という予定でしたが、著者のAaronさんのお仕事が忙しいらしく、執筆が大幅に遅れているようです。
具体的なスケジュールはまだ出ていませんが、早くても5月以降になりそうです。
日本語版のアップデートはさらにその後になります。
申し訳ありませんが、もうしばらくお待ちください。

(追記ここまで)

はじめに

僕が翻訳者として携わった電子書籍「Everyday Rails - RSpecによるRailsテスト入門」のアップデート情報が著者のAaronさんのブログで掲載されました。

早速僕の方でこのブログの内容を翻訳したので、みなさんにご紹介したいと思います。

アップデートの要点

その前に、本文が少し長いので簡単に要点をまとめておきます。

  • Rails 5 / RSpec 3.5対応版のサンプルアプリケーションは新しく作り直す。さらに、昨今のベストプラクティスを踏まえながら、書籍の構成も見直す。
  • 書籍の名前と表紙が変わる可能性がある。
  • アップデート版は無料で提供する。(英語版、日本語版とも)
  • アップデート版は2017年2月に公開するのが目標。(日本語版もできるだけ早く追従する予定)

それでは以下が全文です。

【翻訳】Rails 5およびRSpec 3.5対応版「Everyday Rails - RSpecによるRailsテスト入門」のアップデートについて

Rails 5が公開されてから数ヶ月が経ちました。そして私は「Everyday Rails - RSpecによるRailsテスト入門」は新バージョンのRailsや最近のRSpecの変更点にいつ対応するんですか?という質問を何度も受け取りました。この件に関して私はしばらく沈黙していましたが、ようやく新しいお知らせができるようになったので、すでに本書を購入してくださったみなさんへ、それに購入しようかどうか迷い続けているみなさんにもお知らせしたいと思います。


まず最初に、サンプルコードが最新のRailsやRSpecをカバーしていないからといって、本書の内容が全く無価値になったわけではありません。本書で紹介したテクニックは私自身も自分のRailsアプリケーションをテストするために使い続けています。コントローラのテストはあまりしなくなりましたが、コントローラスペックの章にはテストコードを整理するための重要なテクニックを説明しており、私自身もそうしたテクニックを使い続けています。つまり、もしあなたがサンプルコードが最新のRailsをサポートしていないために、本書の内容が古くさくなっているんじゃないかと心配しているのであれば、その心配は無用です。本書の内容は現在でも有効ですし、もっとテストを書かなければいけないRails 4.xのコードベースはたくさん存在しているはずです!もしすでにRails 5を使っていたり、そろそろアップグレードしようと考えていたりする場合は、私が過去に書いたリクエストスペックフィーチャスペックの記事(英語版)が参考になると思います。


とはいえ、現在私はRailsとRSpecの変更点を反映するために本書をアップデートしている最中です。この作業は以下のような理由でいつもよりも少し時間がかかっています。

  • 私はサンプルアプリケーションを新しく作り直し、内容を充実させるために機能を増やしました。これによりさらに豊富なテストコードの例を紹介することができます。実験的にサンプルアプリケーションをいくつか作ってみましたが、最終的には複数ユーザーで使用するプロジェクトマネージメントツールを選びました。TODOリストはWebアプリケーションチュートリアルの定番ですし、テストの考え方を説明するための基礎的なアプリケーションとしてもピッタリです。このアプリケーションを使ってRSpecの使い方や、API、JavaScriptなどをテストする関連ツールの説明をしていきます。
  • それに関連して、コンテンツの構成を見直し、現在私が実践しているテストの書き方や、Railsのテスト全般に役立つベストプラクティスを紹介します。たとえば、先ほども述べたとおり、現行版ではshared exampleやモックの説明をするためにコントローラのテストを使っていましたが、実際には私はコントローラをあまりテストしなくなっています。また、Railsコミュニティにおいても、コントローラのテストはだんだん重要度が低下しています。古いRailsアプリケーションにはコントローラのテストがまだ残っているかもしれないので、アップデート後も簡単に説明しますが、shared exampleやモックの説明は他の項に移動させ、必要に応じてより詳しく説明する予定です。


二つ目に、本書の名前と表紙が変わるかもしれません。私のブログ「Everyday Rails」は本書よりも前から存在していました。しかし、ブログ名を書籍名に含めたことにより、私のこれまでの活動を知らない多くの人たちを混乱させてしまいました。なので、計画がうまく進めば、私のブログと区別しやすい新しいタイトルを付けるつもりです。ただし、名前が変わっても全体的なトピックやアプローチは同じです。Railsアプリケーションを実践的かつ信頼性の高い方法でテストし、既存のアプリケーションにテストを追加するところから始めて、最後にテストファーストに移行します。つまり、本書に新しい名前が付けられるだけです。


三つ目に、すでに英語版を購入してくれた方には無料でアップデート版を提供します。中国語版と日本語版については翻訳者の意向を尊重して何も言いませんが、英語版については以前のバージョンを購入してくれた方全員にアップデート版を提供する予定です。(訳注:日本語版も無料でアップデートします!)


その代わりに、といってはなんですが、私からみなさんにお願いがあります。もしみなさんが「Everyday Rails - RSpecによるRailsテスト入門」をとても役に立つ本だと考えてくれていたら、友人や同僚にそれを教えてあげてください。友人や同僚の人たちも今購入すれば、みなさんと同じように無料でアップデート版を手に入れることができます。


最後に、新しいコンテンツはできれば2017年2月中に公開しようと考えています。それまでに100%完成しているとは断言できません。なぜなら私は本書の執筆中にも普段の仕事をこなしているからです。しかし、それまでにこの内容なら公開しても問題ないと思えるレベルにアップデート版を仕上げるのが、現在の私の目標です。(訳注:日本語版の提供時期は未定ですが、できるだけ早くアップデート版に追従しようと考えています。)


アップデート版の公開までもうしばらくかかりますが、それまでご辛抱いただけるとありがたいです。本の執筆は思ったよりも大変です。既存の技術書を書き直すのはさらに困難が伴います。(ソフトウェアを書き直すプロジェクトに参加したことがあれば、きっと理解してもらえると思います。)何か質問があればコメント欄にコメントをください。もしくは当ブログのナビゲーションバーにあるチャンネルのいずれかを使って、直接連絡してもらっても構いません。(訳注:これは英語版ブログの話です。日本語で問い合わせる場合はTwitter等で翻訳者に連絡してください。)


最新情報があれば、ブログ「Everyday Rails」に投稿していきます。メールで更新を受け取りたい場合は私のニュースレターを購読してください。(訳注:これも英語版ブログの話です。日本語で最新情報を知りたい方はこのブログをチェックしてください。)


いつものことですが、みなさんのサポートには大変感謝しています!本書を最初に公開してからもう5年近く経っているとは自分でも信じられません。たくさんの人たちに支えられて、私は本当に嬉しく思っています。

(翻訳はここまで)

まとめ

というわけで、いよいよEveryday RailsのRails 5 / RSpec 3.5対応が始まります。
上の文中にも書いてあるように、既存の購入者はアップデート版も無料で手に入れられるので、アップデート版の公開を待つ必要はありません。
RSpecでRailsのテストを書けるようになりたいという方は、ぜひ「Everyday Rails - RSpecによるRailsテスト入門」を購入してやってください!


Everyday Rails - RSpecによるRailsテスト入門
f:id:JunichiIto:20161207084257p:plain