give IT a try

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

正式版公開のお知らせと幻のあとがき・Everyday Rails - RSpecによるRailsテスト入門

お知らせ

お待たせしました!
本日、2014年2月28日に「Everyday Rails - RSpecによるRailsテスト入門」の正式版をリリースしました。
以前からお伝えしているとおり、ベータ版を購入済みの方は無料で正式版にアップデートしていただけます。


もちろん、本日以降新規に購入された方は最初から正式版をダウンロードすることができます。
ご購入の際は以下のページにアクセスしてください。

Everyday Rails - RSpecによるRailsテスト入門 - Leanpub

正式版の変更点

本書の変更履歴にも書いてありますが、正式版では以下のような点を変更しています。

  • 「サンプル」の訳を「example」に変更。
  • 「共有サンプル」の訳を「shared examples」に変更。
  • 「テストの主語」となっていた箇所を「テストの対象」に変更。
  • 訳者あとがき、日本語版の謝辞、および訳者紹介のページを追加。
  • 翻訳全体に関して、日本語としての読みやすさを改善。
  • 誤字脱字、表記の揺れ、フォーマット崩れ、段落先頭の字下げの文字数、シンタックスハイライトの不一致等を修正。
  • 原著に合わせる形でサンプルコードに行番号を表示(表示されていない部分は原著通り)。
  • 原著の2014-02-24版に追従。

また、正式版公開にあたって、外部レビュアーとして橋立友宏(@joker1007)さん、西川茂伸(@shishi4tw)さん、遠藤大介(@ruzia)さんの3名に本書をレビューしていただきました。
どなたも我々だけでは気付かなかった翻訳の問題点や技術的な誤りを指摘していただきました。どうもありがとうございました。

正式版にアップデートする方法

ベータ版をすでに購入されている方は、LeanpubにログインしてDashboardページを開いてください。
Individual Purchasesのセクションで目的のファイルをクリックすれば、最新版のファイルをダウンロードすることができます。

f:id:JunichiIto:20140228080930p:plain:w500


正式版かどうかの確認は、本書の最後にある変更履歴をご覧ください。
「2014/02/28」の日付が載っていればOKです。

f:id:JunichiIto:20140228094336p:plain:w400

今後の予定

正式版をリリースしたのでこれでおしまい、というわけではありません。
本書は今後も引き続きバージョンアップしていく予定です。


具体的なスケジュールは未定ですが、原著はRails 4.1とRSpec 3.0の対応版をリリースする計画があるようです。
そちらがリリースされれば、日本語版もそれに合わせて翻訳をアップデートしようと考えています。


また、原著のマイナーなアップデートに追従する更新や、新たに見つかった日本語版の誤字脱字の修正等も必要に応じて随時実施します。
ただし、あまり大きな変更でなければ、特にアナウンスはせずに書籍内の変更履歴とファイルの更新だけで済ませるかもしれません。


最後に、せっかく本を一冊完成させたので、本書の内容をテーマにして関西近辺の勉強会やオンライン勉強会で何か発表したいな~とも思っています。
具体的なスケジュールが決まれば逐次このブログ等でお知らせしていきますので、よろしくお願いします。

正式版公開までの裏話

日本語としての読みやすさの改善や誤字脱字の修正は、なかなかぱっと気付きにくいとは思いますが、diffをとって比較すると、実はこれぐらい手を入れてあります。

f:id:JunichiIto:20140228082212p:plain:w400


また、Bitbucketに登録した翻訳を改善するためのIssueの件数は全部で259件になりました。
これをゼロになるまで修正し続けるのは、なかなか骨の折れる作業でした。

f:id:JunichiIto:20140228082610p:plain:w400


修正が必要なのは日本語訳だけではありません。
中には原著の記述に起因するものも数多くあり、それらはAaronに報告して原著から修正してもらっています。

f:id:JunichiIto:20140228083021p:plain:w400

ちなみに、AaronとのやりとりはPublicなGitHubリポジトリで行っているため、誰でも内容を確認することができます。どんなやりとりをしているのか興味がある人は以下のページにアクセスしてみてください。

 

他にもいろいろ裏話はありますが、それはまたの別の機会にご紹介しましょう。

おわりに: 幻のあとがきと謝辞

最後に、結局正式版ではボツになってしまった幻のあとがきと謝辞を載せて、今回のエントリを締めくくりたいと思います。
思うままにあとがきを書いていったら、非常に長くなってしまい、他のメンバーのあとがきとバランスが取れなくなったので、もう一度ゼロから書き直しました。


しかし、このあとがきを完全にお蔵入りさせてしまうのももったいないので、今回自分のブログで公開することにしました。


ブログを書くときはだいたい早朝なのですが、このあとがきは珍しく夜中に書いたので、少々「エモい*1」内容になっています。
まあ、たまにはこういうテイストの文章もいいんじゃないでしょうか(苦笑)。
また、後半の謝辞だけは、ほぼ同じ内容で書籍に収録されています。


それでは引き続き、幻のあとがきと謝辞をお楽しみください。




あとがき

Everyday Rails Testing with RSpec との出会い

僕が Everyday Rails Testing with RSpec に初めて出会ったのは、確か今から1年半ぐらい前、2012年の夏のことでした。しかし、そのときに見たのは表紙だけです。僕の仕事の同僚である西見さんが「最近こんな電子書籍を買ったんだ」と見せてくれたのが最初だったと思います。それから約一年後、2013年の秋頃にRuby Weeklyから送られてきたメールの中で再び Everyday Rails Testing with RSpec という書籍の名前を目にしました。


RSpecは日々の業務の中でよく使うツールなので、大体の使い方は理解していました。しかし、RSpecが得意分野かと聞かれると決してそうではなく、うまく動いてくれずに何時間もハマったり、だんだんと肥大化してメンテナンスしにくくなったテストコードにうんざりするときもしばしばありました。また、モデルスペックは比較的よく書いていましたが、コントローラスペックやフィーチャスペックを書くのは何となく苦手で、よっぽどの必要が無い限り手を出しませんでした。


「じゃあ、一度この本でも読んで勉強してみるか」


そう思って手にしたのが Everyday Rails Testing with RSpec との本当の出会いです。

本書から学んだこと

読む前はもう少しマニアックで技術的に高度な内容を想像していましたが、僕の予想に反して本書はRSpecのインストール方法から丁寧に教えてくれる初心者向けの内容でした。とはいえ、どれも実務ですぐに使えそうな実践的な内容ばかりで、僕にとって非常に良いお手本になりました。苦手だったコントローラスペックやフィーチャスペックもこの本を参考にしながら書けば、すらすら書けるようになりました。また、肥大化してメンテナンスしにくくなったテストコードに対しては「スクロールが必要になるテストコードならDRYを捨てろ」という金言が書いてあり、「テストコードもできる限りDRYに」と考えて泥沼にハマっていた僕をAaronは救い出してくれました。


僕は純粋に本書を良い技術書だと思ったので、自分のブログで紹介しました。また、作者のAaronにも「良かったからブログを書いたよ」とTwitterでメッセージを送りました。しかし、前述のブログを読んでもらえればわかりますが、この時点で僕は全く自分で翻訳をしようとは思っていませんでした。何を隠そう、「あまり難しくないからみんなも英語で読もう」とブログの中で呼びかけていたぐらいですから!しかしその5ヶ月後、僕は本書の翻訳を終え、このようにあとがきを書いています。人生はよくわからないものです。

翻訳をしようと考えた理由

僕が翻訳に着手した理由はいろいろありますが、一番大きな理由は 日本のRailsプログラマがもっと気軽に読めるRSpecの技術書を提供したかったから です。Railsを解説した日本の技術書はたくさんあります。RSpecについて書かれた日本語の技術書も発売されています。しかし、日本語で書かれた RailsをRSpecでテストするための技術書 は一冊も存在しません。RailsもRSpecも日本では比較的ポピュラーなフレームワーク/テストツールだというのにです。僕が設立した西脇.rbのコミュニティでも、「RSpecでRailsのテストが書けるようになりたいんだけど、どうすればいいですか?」という声を時々聞いていました。僕はその質問に対して「 Everyday Rails Testing with RSpec がオススメですよ」と答えてはいましたが、洋書を読む習慣のない日本人プログラマだと、きっと「洋書はパス」と心の中で答えていたんじゃないかと思います。


おそらく、同じようにRSpecの書き方がわからなくて困っているRailsプログラマは日本にたくさんいると思います。そして、最初から「洋書はパス」と考えているRailsプログラマも日本にたくさんいると思います。であれば、僕が Everyday Rails Testing with RSpec を翻訳することで、日本にたくさんいる「RSpecの書き方がわからなくて困っているRailsプログラマの人たち」に喜んでもらえるんじゃないだろうか?そんなふうに考えて、本書を翻訳することに決めました。

翻訳の苦労

そして僕は翻訳を始めたのですが、これが思った以上に大変でした。原文の意味を正しく、わかりやすく、そして日本語らしく翻訳するということが、これほどまでに難しいとは思っていませんでした。そのあたりの苦労についてはすでにブログにまとめてあるので、詳しくはそちらをご覧ください。

謝辞

ところで、技術書には筆者からの謝辞が付きものです。正直に言いますが、僕は技術書の謝辞にはあまり興味がありませんでした。知らない人の名前を見ても何も感じないからです。みなさんの多くもきっとそうじゃないかと思います。しかし、実際に翻訳をしてみると、決して自分一人の力では翻訳を完了できないことを痛感しました。みなさんが読んでくれるかどうかにかかわらず、お世話になった方々の名前を挙げられずにはいられない気持ちになりました。なのでこれまでに読んできた技術書の筆者の方たちと同様に、僕も今回お世話になった方たちの名前を挙げていきたいと思います。なお、以下には僕個人の謝辞と、翻訳者チームを代表しての謝辞が混在しています。予めご了承ください。


まず、著者のAaronとはFacebookグループやGitHubのIssue上で何度もやりとりを交わしました。忙しい中、毎回丁寧に応対してくれたことを非常に感謝しています。ちなみに、Aaronのラストネームは「サマー(Summer)」ではありません。「サムナー(Sumner)」ですのでお間違いなく。(僕も間違えてました。)


技術評論社の傳智之さんには技術書を出版する際の進め方についてアドバイスをいただきました。楽天株式会社の藤原大さんには翻訳者としての経験を元に貴重なアドバイスをいただきました。翻訳期間中は僕が勤務している株式会社ソニックガーデンのメンバーにも応援&サポートをしてもらいました。余談ですが、業務に支障が出ないレベルで日中に翻訳していたことをここで白状します。


Leanpubは海外発のサービスということもあって、時々電子書籍中の日本語表示がおかしくなることがありました。そんなときに何度も辛抱強く我々の修正リクエストに応対してくれたLeanpubのMike, Scott, Peterにも感謝しています。おかげでとてもきれいな日本語の電子書籍が完成しました。また、電子書籍で使えそうな日本語フォントを探しているときにTwitterで「あおぞら明朝」の存在を教えてくれたがんじゃさんと、このフォントを作られたbluskisさんにも大変感謝しています。


そして、この数ヶ月間一緒にがんばってくれた翻訳チームの秋元利春さん魚振江さんにも心から感謝します。今回チームで動いて本当に良かったです。もし一人でやっていたらもっと発売が遅くなっていたでしょうし、途中で間違った舵取りをしていた可能性だってあります。間違った舵取りを正すという意味では、お忙しい中、ベータ版のレビューをしてくれた橋立友宏さん西川茂伸さん遠藤大介さんにも非常に助けられました。どなたも我々だけでは気付かなかった翻訳の問題点や技術的な誤りを指摘していただきました。そして、西脇.rbのイギリス人プログラマ、マイケル(P. Michael Holland)はほとんど4人目の翻訳者と呼んでも差し支えないぐらいの活躍をしてもらいました。もしマイケルが英語と日本語の橋渡しをしてくれていなければ、この翻訳がもっともっと辛い作業になっていたことは間違いありません。


最後に、やはり家族への感謝の気持ちを述べずに終わることはできません。スーパーマンではなく、ただの凡人である僕は、翻訳の作業時間を作るために家族との時間を削ることぐらいしかできませんでした。妻にも子どもたちにも、ここ数ヶ月はちょっと淋しい思いをさせていたかもしれません。翻訳の仕事が落ち着いたら、みんなでどこかのんびりと旅行にでも行きましょう。

最後の謝辞

そして、これが本当に最後の謝辞です。わざわざお金を出して本書を購入してくれたみなさん、どうもありがとうございました。本書のベータ版を発売する前は、こんなにたくさんの方が本書を購入して下さるとは思いませんでした。翻訳者一同、本当に感謝しています。また、「本書を読んだおかげでRailsのテスト力が上がった」なんていう声があちこちから聞こえてくることを楽しみにしています。ぜひ、ご自身のTwitterやブログ等で感想を聞かせて下さい。ご意見やご質問でも構いません。本書は引き続きバージョンアップを繰り返していく予定です。「読み終わったからこれでおしまい」ではなく、今後もまたみなさんと紙面で(画面で?)再会できることを楽しみにしています。ではそのときまで、ごきげんよう。




「Everyday Rails - RSpecによるRailsテスト入門」はPDF、Kindle、iBooks等で読めます

ご購入はこちらからどうぞ。

Everyday Rails - RSpecによるRailsテスト入門 - Leanpub


*1:エモーショナル、熱い、っていう意味ね