ねこものがたり

いちにちいっぽ

『研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ』の翻訳レビューをさせていただきました

研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフwww.lambdanote.com

経緯

訳者の角谷さんから声をかけていただいて、レビュアーとして参加することになりました。技術書のレビュアーはやったことがありませんでしたし、正直「もっとふさわしい人がいるのでは」と思い辞退しかけましたが、その思いは思った瞬間に「いやいや」と拭ったように覚えています。

発売されたらきっと自分はどのみち読むわけですし、それ以上に「この本を翻訳していただけるなんて!そこに少しでも尽力できるなら」と思った記憶があります。なぜなら先に英語版を読んでいてすごく良いなと思ったので周りにも勧めていましたが、中には「英語かあ」と遠慮する人もいたので、「日本語でも出たらなあ」と思っていたからです。

と、書いていますが、角谷さんとどこでどのようなやり取りしたか忘れてしまったので、当時のことについては朧げな記憶を掘り起こしています。もしかしたら記憶が歪んでいて、いくらか事実と異なるかも知れません。でも大体こんな感じだったはずです。

レビューの感想

レビューに参加できてとても良かったです。出版の役に立てたかどうかは自分ではわかりませんが、自分にとってはとにかくめちゃくちゃいい勉強になりました。例えば、

  • (少なくとも、ラムダノート株式会社の)技術書の出版に至るまでの作業を垣間見た、特に翻訳の場合にどういうやり取りが発生するのかを知れて、「技術書出すのって大変だな」とものすごく良くわかりました
    • パンフレット作成には少しだけ関わったことがあったんですが、全く違いました(当然)
    • 今後、技術書をもっとありがたく読めそうです
  • 書いてくださった方にはなんでもいいのでリアクションを返すのは自分が思っているより大事だと知りました
    • ベータ版のフィードバックをしている方々の振る舞いや、それに対する返答を見ていて思いました
    • 出版済みの本でも、前書きあたりに「本書の感想やフィードバックをこちらからお願いします」と書いてあるものがあるけど、「めちゃくちゃ些細なことしか書けない」とか「もう数年経ってる本だし」「英語で書くのはなおさら難しい」などと言って全く送ったことがなかったけど、もっと積極的に書いていこうと思いました。今まで完全スルーですみませんでした。
      • 本書についても、レビュアーなことは忘れて、日本語版をもう一回読んだらレビューを書いてみようと思います。ちょっと先になるかも知れませんが!
  • 他のレビュアーがどういう観点でどのようなフィードバックをしているのか、それに対してどういう議論が起きているか、その結果どうなったかを見れたので、視野が広く深くなる感じがしました
    • コードレビューと同じ感じです
    • やり取りを見てるだけで広く深く「なった」とは言い難いけど、「なるほどー‼︎‼️」とか「自分は問題と思わなかったけれど確かに考えさせられるな」とか、少なくとも「気づき」はたくさん得られました
    • 「RuboCopは云々」とか「絵文字だと云々」とか(ふんわりしすぎて何も伝えられない)
    • 技術的なことに限らず、めちゃくちゃ丁寧に文を読み込んで「ちょっとこの言い回しだと意味が分かりづらい」など書いてあるコメントを見ては「完全に全く何も思わなかったわ」と思ったりしていました

学びになったことからはずれますが、角谷さんが「Jeremyらしい本」というようなことをどこかで紹介されているのを聞いた記憶があります。翻訳する方が、そもそも著者のことを詳しく知っているというのは、研鑽Rubyの良さの1つなのではと思いました。どういう日本語に置き換えるか、というのにその辺が表れてきそうな印象があります。(そのようは著書と訳者の関係性がそのような本は他にもたくさんあるとは思いますが、全てがそうではないんじゃないかなーと想像しています)

本の感想

日本語版自体への思い

冒頭にも述べましたが、最初は原書を読んでいたのですが英語だけなのがちょっともどかしく思っていたので、翻訳されたこと自体が大変嬉しく「なんて素晴らしい一冊!!」という感じです!

特に面白かった章

「第15章 データベースが鍵を握る」です。本書とは直接関係はないのですが、原書が出た頃だったかに、自分の趣味コードを書いていたら気づいらたらミニマムORマッパーらしきコードができたことがあります。それを書いていて「アプリケーションとDBのどちらに重きを置いて考えるかみたいな何かがありそうだ」と感じました。その時はそれ以上の言語化や気づきはなかったのですが、それがなんとなく自分の中の片隅にあったので、この章で取り上げられているSequelとActive Recordの思想や実際の振る舞いの違いを面白く読んでいました。アンテナがそちら方面に立っていたということかなと思います。

特に読み返していきたい章

ここの内容は特に自分に足りないものだなと思う内容は「第2章 役に立つ独自クラスを設計する」とか「第7章 自分のライブラリを設計する」などの設計に関する部分です。

今も仕事で毎日思っているのですが、私はどうも設計をすんなりとはできないことが多いなと感じています。「動作は正しいかも知れないがI/Fが分かりづらい」とか「データ構造はこれではない方が使い勝手が良いのでは」というような感じです。

設計というのは一回でうまく行かなくても良い面もあるかも知れませんが、ブラッシュアップするにしても「どういう観点で今の設計を見直してどうするのか」という切り口が足りない感じがしています。他の章でもそうですが、本を読んで「ふむふむ」と思うだけではできるようにならなかったり、ある時はうまくできたとしてもある時はそうもいかなかったということもあるかと思うので、鍛錬あるのみですね。研鑽していこう!

最後に

改めまして、この度はレビュアーとして関わる機会をくださってありがとうございました。 また、このような素晴らしい本を翻訳してくださったことを本当にありがたく思います。 日本語でも英語でも、たくさんの方に読んでいただきたい一冊だなと思いますし、何より自分がこの本で研鑽を続けていけたらと思います。