ハイパフォーマンス ブラウザネットワーキング
Published at 2014-05-22
オライリー・ジャパン様より本を頂きましたので、その感想を。 頂いたのは ハイパフォーマンス ブラウザネットワーキング という、Ilya Grigorik氏執筆の日本語訳本。
サブタイトルに ネットワークアプリケーションのためのパフォーマンス最適化 と付いている通り、TCP、UDPといったトランスポートレイヤからアプリケーションレイヤまでのプロトコルの原理に始まり、Webアプリのパフォーマンス最適化アプローチ、ブラウザの通信系API(XHR・WebSocket・WebRTC)と現存のネットワーク技術を幅広く、そして詳細に取り扱っている書籍です。
Webパフォーマンスとしてのネットワーク
Webサイトのパフォーマンスの重要性についてはもとより、それを構成するファクターは複雑化を辿る一方です。Webサイトのあり方が凄まじい勢いで変化している中で、とある1つのWebサイトにおいてどれが重要なパフォーマンスファクターになるのかは事の次第によります。
スマートフォンの性能が瞬く間に向上してきたように、クライアントデバイスの進化が早いことに対し、ネットワークの進化はとても遅いです。そして、モバイルであれば基地局との距離や、周辺の建物の電波状態に左右されるように、非常に不安定な状況にあります。
そのような背景に加え、ネットワークはユーザーにコンテンツを届けるフローの最初に当たる、一番始めに最適化するべき指標と考えます。本書ではそのネットワークに関するアプローチも、サーバーの配信の最適化からブラウザの挙動の観点からのコンテンツ要求の接続管理に至るまで、網羅的に解説してあります。
本書の読者ターゲット
ネットワークについては各所で仕入れて用語と概要がなんとなくわかるレベルの私にとっては、第Ⅰ章のネットワークの基礎や第Ⅲ章のHTTPのような低レイヤに触れている章が、特に読んでて非常に面白い内容でした。この辺りのTCP、UDP、TLSといった基礎理論も多いので、本当に真っさらな状態(IPやHTTPリクエストと言った用語がぼんやりレベルですらわからない)だと辛いかもしれません。
モバイルネットワークにおける最適化・Webパフォーマンス・アプリケーション配信最適化についてもそれまでの基礎理論を踏まえた内容になっているので、最適化の章だけ読むよりはネットワークのコンテキストを得てから読む方が効果的です。業務でもWebサービスのパフォーマンス改善をやっているので、掘り下げて併せて理解することが出来ました。
約360ページで内容も非常に濃いものになっており、お手軽とは言えませんが、4000円と時間を投じて消化する価値があります。フロントエンドのエンジニアにとっても、バックエンドのエンジニアにとっても、双方のレイヤを理解するきっかけになる、抑えておくべき一冊です。
英語版であればWeb上で閲覧可能ですが、ボリュームもありますし、日本語訳を読めるのはやはりありがたいです。
HPBNj
#HPBNjがハッシュタグです。流れているツイートの通り、いわゆる 絶対読め系の本 です。
10章「Webパフォーマンス入門」が大変良かったので書きました / フロントエンドエンジニアから見た『ハイパフォーマンス ブラウザネットワーキング』 - じまぐてっく http://t.co/fXHAXorK2e #HPBNj
— じまぐ (@nakajmg) 2014, 5月 13
読了ハイパフォーマンス「ブラウザ」ネットワーキング ::ハブろぐ http://t.co/hYFX0ZgMHr ありがとうございました #HPBNj
— あほむ (@ahomu) 2014, 5月 19
余談
余談ですが、本書の冒頭で、現在FastlyでChief Performance Officerを務めるSteve Souders氏(以前までGoogleでHead Performance Engineerとして働いていた)は、著者のIlya Grigorick氏を「ネットワークの神様」と称賛しています。