2011/04/02

[本]ハイパフォーマンスJavaScript

通勤中に読了

はじめに

1章 読み込みと実行
 1.1 スクリプトの配置
 1.2 スクリプトのグループ化
 1.3 ノンブロッキングなスクリプト
 1.4 まとめ

2章 データアクセス
 2.1 スコープの管理
 2.2 オブジェクトメンバ
 2.3 まとめ

3章 DOMスクリプティング
 3.1 ブラウザの世界におけるDOM
 3.2 DOMへのアクセスと更新
 3.3 再描画と再配置
 3.4 イベントの委譲
 3.5 まとめ

4章 アルゴリズムと処理の制御
 4.1 ループ
 4.2 条件分岐
 4.3 再帰
 4.4 まとめ

5章 文字列と正規表現
 5.1 文字列の結合
 5.2 正規表現の最適化
 5.3 文字列のトリミング
 5.4 まとめ

6章 反応性のよいインターフェイス
 6.1 ブラウザUIスレッド
 6.2 タイマーへの委譲
 6.3 Web Workers
 6.4 まとめ

7章 Ajax
 7.1 データ転送
 7.2 データ形式
 7.3 Ajaxパフォーマンスガイドライン
 7.4 まとめ

8章 プログラミングの実践的手法
 8.1 二重評価を避ける
 8.2 オブジェクト/配列のリテラルの利用
 8.3 処理を繰り返さない
 8.4 速いパーツを利用する
 8.5 まとめ

9章 高パフォーマンスなJavaScriptアプリケーションのビルドと配置
 9.1 Apache Ant
 9.2 JavaScriptファイルの結合
 9.3 JavaScriptファイルの前処理
 9.4 JavaScriptの最小化
 9.5 ビルド時間対実行時のビルド処理
 9.6 JavaScriptの圧縮
 9.7 JavaScriptファイルのキャッシュ
 9.8 キャッシュの問題に取り組む
 9.9 コンテンツデリバリーネットワークの利用
 9.10 JavaScriptリソースの配置
 9.11 アジャイルなJavaScriptのビルドプロセス
 9.12 まとめ

10章 ツール
 10.1 JavaScriptのプロファイリング
 10.2 YUI Profiler
 10.3 無名関数
 10.4 Firebug
 10.5 Internet Explorerの開発者ツール
 10.6 Safari Webインスペクタ
 10.7 Chromeの開発者ツール
 10.8 スクリプトのブロッキング
 10.9 Page Speed
 10.10 Fiddler
 10.11 YSlow
 10.12 dynaTrance Ajax Edition
 10.13 まとめ

via:目次

Yahoo!のトップエンジニアが書いた本だけあって、ページ数が少ないのにも関わらず内容が濃厚である。
(正確に言うと、本書は、共著だと思うのだが。この際、細かいところは抜きにして。というのも複数の人間が持ち回りして書いていたので。)

仕事柄JavaScriptメインなので、パフォーマンスにフォーカスをあてた書籍がでたことは本当にありがたいことである。
それだけこの言語も、重要なってきたということの証左なのかもしれない。

開発時に、いくら実装できたとしても、ものすごく遅くなってしまっては意味がないし、見ている人に嫌悪感を与えてしまう。
nowなUIでは、JavaScriptでガッツリ書いているものが多く、それゆえに、JavaScriptの処理速度如何によって、見ている人の受け止め方が変わってきてしまう。

では、どうすればいいのか?その答えを色々な角度から教えてくれる本である。

Yahooの内部に人間が書いただけあって、YUIライブラリなどのコマーシャルが結構あった気もするが、それを差し引いても、Googleが開発したツールを紹介したりもして寛容だなと思った。
(確かに、Yahooのライブラリだけ紹介したんじゃー、タイトル的にも内容的にもおかしくなってしまうが。)

JavaScriptの高速化をするにあたって、実は、サーバーサイドの処理も発生することがある。
かつ本書内でも言及されている。
主にPHPがでてくるので、サーバーサイドの言語をかじっていた方がいいと思った。

あと、当然と言えば、当然かもしれないが、JavaScript初心者には、全く向かない本でもある。
ある程度の経験が必要だと思う。

あえて言わせてもらうと、第一章の部分について、ハイパフォーマンスWebサイトとだいぶ重複しているものが多かった気がする。

さらに、p159でcreateXhrObjectという関数が呼び出されるのだが、これは、その次のページで定義が書かれているのだが、ちょっと気づくまでずっと無駄に考え込んでしまったので、最初から説明をつけてほしかったなー。

後、ループに関するパフォーマンス比較やDOMに関する速度分析など非常に痒いところに手が届いていて最高

これを読んで、まさにハイパフォーマンスをしたいなと。

0 コメント:

コメントを投稿