「続・ハイパフォーマンスWebサイト」読んだ

前回の続編が出たと言うことで購入。前回は結局のところ、いかにしてリクエストとダウンロードを早くするかという観点だったのに対し、今回はそれらも考慮しつつJavaScriptの処理の高速化(というより処理をブロックしないよう)の点にメインがおかれている。また、HTML5.0の中身についてや、各ブラウザの仕様と対応状況についてなんかもちょこちょこ書かれている。

個人的な主観が入るかもしれないけれど、私は今回の本はあまり評価できない。前回の本は、時間がかかる箇所はダウンロードとダウンロードしに行くまでの箇所だと明言してその点を深く掘り下げていたのに対し、今回はJavaScriptの実行速度やその仕様制限についてが増えてしまっている。また「今の」Webブラウザの実装状況に依存した小手先回避策が多くなってしまっている。特殊なWebアプリでない限りはJavaScriptの実行速度やDOMノード操作・CSSの読み込みと適用の時間が相対的に問題にはならないと明記しているのにもかかわらず、これらについて解説してしまっている。JavaScriptの処理のブロック(やシングルスレッド制約)にまつわるところなんて、もはや今のWebブラウザを実装する上での制約そのものに関わるところなのに、小手先で逃げられるところを模索しているだけにしか読めない。これじゃ、今回の本なんて読まずに前回の本で提起されたルールをきちんと見つめた方がよい。

cometやWebsocketについてもちらりと書かれているが、これらはこの本の範疇ではないはず。Flush(12章ドキュメントのフラッシュ)についてわざわざ説明しようとしているような読者をターゲットにしているのにもかかわらず、HTTPプロトコル上にある意味「強引に」作ったCometやTCPの生ソケットについての話題を持ってくる必要があるのだろうか。

JavaScriptについても、Webブラウザの今の実装に基づいて解説しすぎている気がする。せっかくのランタイム実行形式のJavaScriptなのだから、ヘタな小手先修正を解説するのではなくて、将来のランタイムの改善による実行高速化に期待した方がいいのではないだろうか。ヘタな小手先修正なんてしない方がよいというのが10年以上前のJavaからの教訓だったと思うんだけど。

もちろん、真に高速化・最適化を目指すにはあらゆることを考慮していかないといけないのはその通りだけど、あらゆることを考慮しないといけないレベルにはまだまだ達していない。ブラウザのバージョンごとの違いはどうなのか、Javascript実行エンジンの特性の違いは、DOM操作の速度は、レンダリング速度は、OSの違いは、CPUの違いは、想定するメモリ使用量は、コンテンツのHDDへのキャッシュ書き出し速度は、回線速度による違いは、回線レイテンシの違いは、NATやFWが足を引っ張っていないか、サーバ側のスクリプトはどうか、WebサーバはApacheでいいのか、mod_php,mod_perlちゃんと使っているか、MySQLがボトルネックになってないか、サーバのCPU/メモリリソースは十分か、とか言い出せばきりがないけど、それ以前にダウンロードにかかる時間とダウンロード要求が遅れないようにすることが相対的に重要になるはず。てかそれが重要だと前回の本から一貫して書いているはず。

というわけで、9?11章あたり以外はあんまりオススメできないです。よほどあらゆることを知っておきたい人以外は、前回の本をきっちりと理解する方へ労力を注いだ方が遙かによいです。

このブログ記事について

このページは、らるるが2010年7月26日 04:23に書いたブログ記事です。

ひとつ前のブログ記事は「Viliv N5 買った」です。

次のブログ記事は「ポジティブ/ネガティブ表現」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0