訳者まえがき
1年ほど前、写真共有サイトFlickrの開発者Cal Henderson氏が書いた『スケーラブルWebサイト』を翻訳しました。今はYahoo!が提供する重要なサービスのひとつとなっている巨大サイトFlickrをゼロから構築したノウハウが詰め込まれた300ページを超える大作でした。ウェブアプリケーションのアーキテクチャ、開発時のソースコード管理、サーバの負荷分散、データベースのスケーリングなどなど、非常に広い範囲を覆うもので、「自分のすべての知識を詰め込んでやる」といったようなHenderson氏の初の著作にかける意気込みが伝わってくる力作でした。
約1年後に翻訳することになったこの『ハイパフォーマンスWebサイト ― 高速サイトを実現する14のルール』も、同じYahoo!に所属する技術者によって書かれた初めての著作ですが、『スケーラブルWebサイト』に比べると半分ほどの厚さで、対象もフロントエンドの高速化、つまりブラウザによるコンテンツの表示をいかに速くするかに絞られています。
量やカバーする範囲には大きな差があるこの2冊ですが、読者へのメッセージは同じくらい強烈です。いずれも、世界でも指折りの超巨大サイトの運営に携わったことのある者にしか経験できない実体験に基づいているのです。
この本の著者のSteve Souders(スティーブ・サウダーズ)氏はYahoo!でフロントエンドのパフォーマンス改善を専門に担当しています。Yahoo!のようにページビューの多いサイトとなると、1ページの表示にかかる時間を0.1秒でも短縮できれば、トータルではサーバの負荷がかなり減らせることになり、結果的にサーバを増強せずに利用者に対するレスポンスも改善できるというわけで、Souders氏率いる専門のチームが誕生したということなのでしょう。
サーバの負荷を減らそうとすれば、バックエンドのアプリケーション側で対策を取りたくなるのが、一般的な(とくに開発者の)発想ではないでしょうか。アプリケーションのアーキテクチャやアルゴリズム、データベースの構造などを見直して、何とか高速化を実現しようがんばります。処理速度が2倍になれば、利用者の待ち時間は半分にできるはずです。
ところが、それは誤りである、いや少なくとも最初に取るべきステップではないというのが、Souders氏の主張です。なんと、ユーザーの待ち時間の8割前後は、ブラウザにデータが転送される時間とブラウザによって描画される時間に使われているというのです。バックエンドの処理をどんなに速くしても、それだけでは1割程度しか高速化できないというのです。
Souders氏の主張は論理的で明解です。技術者が漠然とイメージしているパフォーマンスに関する常識を、先入観を廃して自らツールを作成して検証し、「常識」を無条件で信じてはいけないことを知らせてくれます。HTTPの仕組みの説明から始まり、どこにボトルネックがあるのか、どうすれば速くなるのかを解明し14の分かりやすいルールにまとめてくれました。そして、この14のルールのいくつかを適用するだけで、応答時間は簡単に半分以下に削減できるというのです。
たとえば、ルール6は「スクリプトは最後に置く」というものです。JavaScriptの本の多くには、スクリプトは先頭に置くようにと書かれていますが、Souders氏は「パフォーマンスの観点からは誤りだ」と主張します。
最初にこの本を読んだとき「本当だろうか?」と思った私は、実際に自分のサイトで試してみました。比較的大きなスクリプトの読み込みを先頭から最後に移動してみたところ、さすがに光ファイバーの接続では「少しは速くなったかな」といった程度でしたが、携帯電話から試してみると、その差は歴然でした。スクリプトを最後に置いた方は、すぐに表示が始まるのに対して、最初に置くと、5秒以上真っ白な画面が表示されてしまうのです。なぜこうなるかは、Souders氏がとてもていねいに説明してくれてありました。
そもそも、私が時間をかけてこんな実験をしてみなくても、Souders氏の主張が正しいことは明白ではあったのです。世界の巨大サイトであるYahoo!の数多くの開発チームが既に実証してくれているのですから。
皆さんも、「14のルール」を実際にご自分のサイトで試してみてください。ルール2は、そう簡単には試せませんが、それ以外はそれほどのコストをかけずに試せるものばかりです。ちょっとした時間をかけるだけで表示速度が2倍になり、利用者には喜ばれサーバの負荷も軽減されるのですから、これほど「おいしい」話はそうはありません。たとえ、Yahoo!のような巨大サイトではなくても、表示が速いほうがそのサイトの人気が上がることは間違いがないところでしょう。
さて、最後になりましたが、この本を翻訳する機会を与えてくださった宮川直樹さんをはじめとする株式会社オライリー・ジャパンの皆様に感謝いたします。次は、どんな本に出会えるか、また楽しみです。
2008年3月
訳者代表 武舎広幸