『Ruby on Railsパフォーマンスアポクリファ』

翻訳を担当した電子書籍Ruby on Rails パフォーマンスアポクリファ』が発売となりました。 書籍は以下から購入できます。

Ruby on Rails パフォーマンスアポクリファ

本書は、2020年に出版されたNate Berkopec著『The Ruby on Rails Performance Apocrypha』の全訳です。原書は訳書と同様、著者の販売サイトで自主出版の電子書籍として出版され、現在はKindleストアでも販売されています。

The Ruby on Rails Performance Apocrypha

本書は、Nateがニュースレター「Speedshop Ruby Performance Newsletter」に公開してきた記事を編集してまとめたものです。Nateが注力し続けている Ruby on Rails アプリケーションのパフォーマンスやスケーリングの話題、ソフトウェアパフォーマンスの一般原則、RubyについてのNateの考えなどがまとめられてます。具体的な目次は次のようになっています。

第1章 原則
1.1  私が大切にしていること
1.2  パフォーマンスの科学
1.3  なぜパフォーマンスか? 
1.4  あなたはコンパイラではない
1.5  10%の高速化が本当に意味すること
1.6  Rails アプリケーション向けのベンチマーク
1.7  自分用のAPMを作る
1.8  フレームグラフを読む
1.9  DRM(データベース、Ruby、メモリ) 
1.10 デザイン空間におけるパフォーマンス 
1.11 マイクロサービスとトレンド 
1.12 Minitestについて 
1.13 Rubyに対する企業のサポート
1.14 なぜRubyは遅いのか?
1.15 人気 
1.16 臭い依存関係 
1.17 なぜキャッシュするのか? 
1.18 スタートアップにおけるソフトウェア品質

第2章 フロントエンド
2.1  簡単なフロントエンドの設定変更
2.2  常にCDNを使用する
2.3  ページ容量とフロントエンドの読み込み時間
2.4  遅延読み込みを簡単に
2.5  リソース優先順位付けとは何か
2.6  HTML ON THE WIRE
    
第3章 Ruby
3.1  例外:静かでもタダではない
3.2  スレッドセーフについて
3.3  GVLとは
3.4  GVLを時分割する
3.5  GVLとC
3.6  肥大化
3.7  最低限必要なRails
3.8  誰も使わなかった奇妙な設定
3.9  オブジェクト割り当て
3.10  常に本番用プロファイラを使用する
3.11  ローカル環境で問題を再現する
3.12  ワーカーキラー
3.13  クエリーキャッシュとは?
3.14  NewRelicのRubyVMタブを読む
3.15 テストセットアップ

第4章 スケール
4.1  消費時間とは
4.2  リクエストキュー時間
4.3  アムダールの法則
4.4  スレッド数
4.5  CPU律速かIO律速か?
4.6  スワップとは何か
4.7  データベースプール
4.8  シングルスレッド性能
4.9  リードレプリカ
4.10  なぜLambdaなのか?
4.11  Performance-Mは決して使わない
4.12  日次での再起動

本書はニュースレターに書かれてきた記事が元になっているため、Railsのパフォーマンスに関して体系的にまとめた書籍というよりも、パフォーマンスをテーマとした技術エッセイ集的側面の強い一冊に仕上がっています。しかしながら、そうした技術エッセイ集的な読み心地には、なんとも言えない「良さ」を感じます。

かつては、『ハッカーと画家 コンピュータ時代の創造者たち』(オーム社)や『BEST SOFTWARE WRITING』(翔泳社)、『プログラマが知るべき97のこと』(オライリージャパン)をはじめとする『〜が知るべき97のこと』シリーズなど、ソフトウェア技術者によるエッセイ集が多く出版されていた時期があり、技術書としても人気を博していました。

Rubyに関わりが深い著者による同系統の書籍として、『達人プログラマー ―熟達に向けたあなたの旅― 第2版』(オーム社)や『情熱プログラマー ソフトウェア開発者の幸せな生き方』(オーム社)などを思い浮かべる方も多いのではないでしょうか。こういったエッセイ集から私たちが学んでいたのは、単なる新しい技術や知識というよりも、ソフトウェア技術者としての哲学や心構え、考え方でした。

しかし、ブログブームの終焉や出版業界の状況なども相まってか、昨今はこうした書籍を商業出版で見かける機会は減ってしまいました。

そういった状況の中で本書を読み、訳者が久々に感じたのは、上記のような書籍を読んでいたときに感じていた「良さ」に似た味わいでした。

本書は、Web(特にRailsによるWebアプリケーションによるWebアプリケーション)のパフォーマンスについての書籍ですが、それと同時に、Nateというソフトウェア技術者の考え方や哲学に触れることで、私たち自身のソフトウェア技術者としての考え方を深めたり、普段の開発への取り組み方を見つめ直したりするきっかけになる書籍でもあります。

本書を通じ、一人でも多くの方に、訳者が感じた原書の味わいが届けられればと願っています。

Ruby on Rails パフォーマンスアポクリファ


Nateは、現在は日本に暮らしており、日本語での情報発信も積極的に行なっています。 本書を気に入られた方、気になった方は、ぜひ彼の活動に触れてみてください。