@ledsun blog

無味の味は佳境に入らざればすなわち知れず

ステートフルJavaScript(JavaScriptフレームワーク 3分間クッキング)

FlexSilverlightの代わりにJavaScriptを使ってリッチクライアントアプリケーション(RIA)を開発するための解説書。著者Alex MacCawはSpine*1の作者。

ざっくりした内容

この本には二つのテーマがある。

全体としては270ページに内容盛り込みすぎ。

  • 2章まで読むと「確かにフレームワークが作れるぞ!」とJavaScriptのイメージが変わるのでおススメ。
  • 3章では「ORM」という単語が出ますがリレーションは関係ありません。サーバからデータを取ってくるDAOのことです。
  • 4章までが裏テーマの「MVCフレームワークの作り方」
  • 5〜10章が表テーマの「Webアプリケーションに必要なことすべて」
  • 11〜13章が裏テーマに戻ってMVCフレームワークの紹介。

目次

  • まえがき
  • 1章 MVCとクラス
    • 1.1 初期の JavaScript
    • 1.2 アプリケーションの構造化
    • 1.3 MVCとは
    • 1.4 モジュール性のためのクラス設計
    • 1.5 クラスへの関数の追加
    • 1.6 クラスライブラリへのメソッドの追加
    • 1.7 プロトタイプを使ったクラスの継承
    • 1.8 クラスライブラリに継承を追加する
    • 1.9 関数呼び出し
    • 1.10 有効範囲を制限する
    • 1.11 プライベート関数の追加
    • 1.12 その他のクラスライブラリ
  • 2章 イベントと監視
    • 2.1 イベントの監視
    • 2.2 イベントの発生順序
    • 2.3 イベント処理のキャンセル
    • 2.4 イベントオブジェクト
    • 2.5 イベントライブラリ
    • 2.6 コンテキストの変化
    • 2.7 イベントの委譲
    • 2.8 カスタムイベント
    • 2.9 カスタムイベントと jQueryプラグイン
    • 2.10 非 DOMイベント
  • 3章 モデルとデータ
    • 3.1 MVC名前空間
    • 3.2 ORMの作成
    • 3.3 ID値の割り当て
    • 3.4 参照の管理
    • 3.5 データの読み込み
    • 3.6 データの配置
    • 3.7 データのローカル保存
    • 3.8 新規レコードのサーバへの送信
  • 4章 コントローラと内部状態
    • 4.1 Moduleパターン
    • 4.2 コンテキストの定義
    • 4.3 状態機械
    • 4.4 ルーティング
  • 5章 ビューとテンプレート
  • 6章 依存性の管理
    • 6.1 CommonJS
    • 6.2 モジュールローダー
    • 6.3 複数のモジュールのラッピング
    • 6.4 その他の依存性管理ツール
    • 6.5 FUBC
  • 7章 ファイルの操作
    • 7.1 各ブラウザの対応状況
    • 7.2 ファイルについての情報の取得
    • 7.3 ファイル用 inputタグ
    • 7.4 ドラッグ&ドロップ
    • 7.5 コピー&ペースト
    • 7.6 ファイルの読み込み
    • 7.7 カスタムの参照ボタン
    • 7.8 ファイルのアップロード
    • 7.9 ドラッグ&ドロップ対応アップローダー
  • 8章 リアルタイム Web
    • 8.1 リアルタイム Webの歴史
    • 8.2 WebSocket
    • 8.3 リアルタイムアーキテクチャ
    • 8.4 体感速度
  • 9章 テストとデバッグ
    • 9.1 ユニットテスト
    • 9.2 ドライバ
    • 9.3 無人テスト
    • 9.4 分散テスト
    • 9.5 サポートの提供
    • 9.6 インスペクタ
    • 9.7 JavaScriptコンソール
    • 9.8 デバッガ
    • 9.9 ネットワークリクエストの分析
    • 9.10 プロファイリングと計測
  • 10章 アプリケーションのデプロイ
    • 10.1 処理速度
    • 10.2 キャッシュ
    • 10.3 コードの最小化
    • 10.4 GZIP圧縮
    • 10.5 CDN
    • 10.6 監査
    • 10.7 参考資料
  • 11章 Spineライブラリ
    • 11.1 セットアップ
    • 11.2 クラス
    • 11.3 イベント
    • 11.4 モデル
    • 11.5 コントローラ
    • 11.6 連絡先管理アプリケーションの作成
  • 12章 Backboneライブラリ
    • 12.1 モデル
    • 12.2 コレクション
    • 12.3 ビュー
    • 12.4 コントローラ
    • 12.5 サーバとの同期
    • 12.6 ToDoリストアプリケーションの作成
  • 13章 JavaScriptMVCライブラリ
    • 13.1 セットアップ
    • 13.2 クラス
    • 13.3 モデル
  • 付録 A jQuery入門
  • 付録 B CSSの拡張
  • 付録 C CSS3リファレンス
  • 索引