RubyのコミッターでもあるJeremy Evans氏の書いた本、社内で中級以上のRuby開発者におすすめって言っている人がいて、自分にちょうど良さそうかなと思って買った。当時はまさか翻訳本が出るとは思わなかったので原著を買ったのだけど、どうやら翻訳版が出るっぽいです。
外資系の会社で日常的に英語を読み書きしているので多少バイアスをかかっていると思うけど、英語は平易で読みやすく、こういう本に稀にあるカウボーイなんかのいまいちよくわからない例えやジョークなんかもないのでスイスイ読めた。中級者以上におすすめというのは納得で、Rubyにある程度慣れている人じゃないと前提がよくわからなくて意図がわからない部分もあるかもしれない。感覚的に、あるいは知識として知っている、Xという書き方はしないほうがいい、Yという機能は使わないほうがいい、というような知識を特に丁寧に第一部で説明してくれていて、改めて勉強になった。
ライブラリを書くようなRuby開発者を念頭に置いてある記述が多いせいか、とにかく経験に基づいたプラクティカルなアドバイスが多い。実装に使えるデザインパターンや、最適化の方法もたくさん説明してくれているのだけど、一方でどれかの手法を持ち上げるわけではなく、必ずトレードオフを説明しているところが素晴らしいなと思った。「Xパターンを使えばYというメリットはあるが、その分コードの認知負荷は上がるので明確なメリットを感じる時だけ使おう」といった感じだ。最近の自分の趣向として、クリーンアーキクチャといった重厚な仕組みに懐疑的になってきているのもあって、無条件に特定のパターンを当てはめるのではなく、都度メリットデメリットをちゃんと判断して使うべき、という姿勢に特に共感した。
あとこれは細かいことなのだけど、各章の初めに必ず「この章のコードはRuby XXで動作確認しているよ」と毎回書いているのも著者のこだわりと誠実さを感じた。
Rubyを書き始めて1年〜2年経っている人にはお勧めできる本でした。
https://www.amazon.co.jp/Polished-Ruby-Programming-maintainable-high-performance-ebook/dp/B093TH9P7C