Webで何かを作る人誰もが読むべき本だった - ハイパフォーマンス ブラウザネットワーキング

丸一日かけて読んだので書評っぽいのを。

Webで何かしようとする人はどのレイヤの人も必読だと思います。
インフラはもちろんのこと、アプリを作っている人も知らないでは済まされません。

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化
ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

#概要

目次としてはこんな感じで、TCP/UDPから無線ネットワークの特性から最新のプロトコルまで、
今のインターネットに触れる場合に触りそうな部分を、だいたいカバーしてます。
特にTCPとHTTP、WebRTCについてはとてもしっかりと書かれていました。

また具体的な最適化や、目次に乗っていない関係する技術に関してはかなりばっさり切り落としており、
取り扱っている内容の割にはすんなり読むことができました。

1章 レイテンシ・帯域幅入門
2章 TCPの構成要素
3章 UDPの構成要素
4章 TLS

II部 ワイヤレスネットワークのパフォーマンス

5章 ワイヤレスネットワーク入門
6章 WiFi
7章 モバイルネットワーク
8章 モバイルネットワークの最適化

III部 HTTP

9章 HTTPの歴史
10章 Webパフォーマンス入門
11章 HTTP 1.x
12章 HTTP 2.0
13章 アプリケーション配信最適化

IV部 ブラウザAPIとプロトコル

14章 ブラウザネットワーク入門
15章 XMLHttpRequest
16章 Server-Sent Events
17章 WebSocket
18章 WebRTC

本のレベルとしては、3ウェイ・ハンドシェイクの基礎から教えてくれたりと、
かなり詳細に説明してくれるため、TCPやHTTPの詳しい知識は必要ありません。
だだし、ネットワークとは何かとかサーバとは何かとかの説明はないので、
最低限のネットワークの知識は必須です。

#感想

この本で特にいいと思ったところは、定義通りの何もしていない状態から、
順序立てて一つ一つ効率良くしていく様子を示している所です。

これはキープアライブからHTTPパイプラインの説明のところが顕著ですが、
まずはじめに何も考えずに愚直にやって、どれだけ無駄が多いかを説明し、
次にキープアライブを有効にすることでこれだけ無駄が省ける、
さらにHTTPパイプラインでこんなに無駄が省ける。

といったように、いきなり仕組みの解説から入るのではなく、
今までの方法と比較しつつ、新しい仕組みの利点と欠点を説明しており、
ものすごく理解しやすく書いてあります。

#まとめ これ一冊読めば、Webで何かを作る際に実際は何が起こっているのか、
ということが大体わかるようになるので、
是非ともwebに関わる人は読んでおくべきだと思います。

また、献本の話を持ちかけてくれたレビュアの@flano_yukiさんに感謝です。