内容紹介
JavaScript MVCフレームワーク「Backbone.js」徹底活用入門!
Backbone.jsをはじめとして、コードの構造や保守の容易さを向上させてくれるJavaScriptフレームワークが人気です。本書の解説は、MVCによって構造化されたJavaScript SPAアプリケーションを作成する方法など、Backbone.jsについての基礎的な事柄にとどまりません。モジュール形式の開発やさまざまなプラグインの紹介、開発者がよく遭遇する問題への解決策、アプリケーションの骨組みの自動生成やユニットテストに至るまで、Backbone.jsアプリケーション開発のさまざまな局面を多角的にとらえた一冊です。
このような方におすすめ
JavaScriptプログラマー、Webアプリ開発者、Webサイト制作者、スマートフォンアプリ開発者
目次
詳細目次
まえがき
1章 イントロダクション
1.1 MVCとは
1.2 Backbone.jsとは
1.3 JavaScriptのMVCフレームワークが必要になるとき
1.4 Backbone.jsを検討するべき理由
1.5 本書の構成
2章 MVC
2.1 MVCとは
2.1.1 Smalltalk-80でのMVC
2.1.2 WebアプリケーションへのMVCの適用
2.1.3 クライアント側でのMVCとSPA
2.1.4 クライアント側のMVC.Backbone.jsでのやり方
2.1.5 内部での処理
2.2 MVCのメリット
2.2.1 まとめ
2.2.2 追加の情報
2.3 機能一覧
2.3.1 特徴
2.3.2 利用実績
3章 Backbone.jsの基礎
3.1 セットアップ
3.2 モデル
3.2.1 初期化
3.2.2 ゲッターとセッター
3.2.3 モデルの変化の監視
3.2.4 データの検証
3.3 ビュー
3.3.1 ビューの新規作成
3.3.2 elとは
3.4 コレクション
3.4.1 モデルの追加と削除
3.4.2 モデルの取り出し
3.4.3 イベントの監視
3.4.4 コレクションのリセットと更新
3.4.5 Underscore.jsのユーティリティ関数
3.4.6 連鎖可能なAPI
3.5 RESTに基づく永続化
3.5.1 サーバからのモデルの取得
3.5.2 サーバへのモデルの保存
3.5.3 サーバからのモデルの削除
3.5.4 オプション
3.6 イベント
3.6.1 on()、off()、trigger()
3.6.2 listenTo()とstopListening()
3.6.3 イベントとビュー
3.7 ルーター
3.7.1 Backbone.history
3.8 同期用API
3.8.1 Backbone.syncのオーバーライド
3.9 依存先ライブラリ
3.10 まとめ
4章 チュートリアル1
.Todoリスト(初めてのBackbone.jsアプリケーション)
4.1 静的HTML
4.1.1 ヘッダーとスクリプト
4.1.2 アプリケーションのHTML
4.1.3 テンプレート
4.2 Todoモデル
4.3 Todoコレクション
4.4 アプリケーションのビュー
4.5 個々のTodo項目のビュー
4.6 アプリケーションの起動
4.7 処理の実際
4.8 状態の変更と項目の削除
4.9 Todoのルーティング
4.10 まとめ
5章 チュートリアル2
.ライブラリ(RESTを使ったBackbone.jsアプリケーション)
5.1 セットアップ
5.1.1 モデル、コレクション、ビュー、アプリケーション
5.2 インタフェースの作成
5.2.1 モデルの追加
5.2.2 モデルの削除
5.3 バックエンドの作成
5.3.1 Node.js、NPM、MongoDBのインストール
5.3.2 Node.jsのモジュールのインストール
5.3.3 シンプルなWebサーバの作成
5.3.4 データベースへの接続
5.4 サーバとの通信
5.5 まとめ
6章 拡張機能
6.1 MarionetteJS(Backbone.Marionette)
6.1.1 繰り返される描画用コード
6.1.2 Marionette.ItemViewによる定型的コードの削減
6.1.3 メモリ管理
6.1.4 リージョン管理
6.1.5 MarionetteJS版Todoアプリケーション
6.1.6 MarionetteJS化によってアプリケーションの保守は容易になるか
6.1.7 MarionetteJSの柔軟性
6.1.8 追加情報
6.2 Thorax
6.2.1 Hello Worldアプリケーション
6.2.2 子ビューの埋め込み
6.2.3 ビューのヘルパー
6.2.4 参考資料
6.2.5 まとめ
7章 よくある問題と解決策
7.1 入れ子のビューの扱い
7.1.1 課題
7.1.2 解決策 1
7.1.3 解決策 2
7.1.4 解決策 3
7.1.5 解決策 4
7.2 入れ子のビューでのモデルの管理
7.2.1 課題
7.2.2 解決策
7.3 子ビューからの親ビューの描画
7.3.1 課題
7.3.2 解決策
7.4 ビューの構造の破棄
7.4.1 課題
7.4.2 解決策
7.5 ビューの階層構造の描画
7.5.1 課題
7.5.2 解決策
7.6 入れ子のモデルやコレクションの扱い
7.6.1 課題
7.6.2 解決策
7.7 モデルのより良い検証
7.7.1 課題
7.7.2 解決策
7.7.3 Backbone.validateAll
7.7.4 Backbone.Validation
7.7.5 フォーム固有の検証用クラス
7.8 複数バージョンのBackbone.jsによる競合の回避
7.8.1 課題
7.8.2 解決策
7.9 モデルとビューの構造の作成
7.9.1 課題
7.9.2 解決策
7.9.3 オーバーライドされたメソッドの呼び出し
7.9.4 Backbone-Super
7.10 イベントアグリゲーターとメディエーター
7.10.1 課題
7.10.2 解決策
7.10.3 イベントアグリゲーター
7.10.4 メディエーター
7.10.5 共通点と相違点
7.10.6 両者の関係(いつどちらを使うべきか)
7.10.7 両者の組み合わせ
7.10.8 パターン言語(意味)
8章 モジュール形式の開発
8.1 RequireJSとAMDによるモジュール管理
8.1.1 複数のスクリプトファイルに起因する問題
8.1.2 より良い依存関係の管理の必要性
8.1.3 AMD(Asynchronous Module Definition)
8.1.4 RequireJSを使ったAMDモジュールの作成
8.1.5 RequireJSの導入
8.1.6 RequireJSとBackbone.jsを組み合わせた例
8.1.7 RequireJSとtextプラグインによるテンプレートの外部化
8.1.8 RequireJS Optimizerを使ったBackbone.jsアプリケーションの実運用向け最適化
8.2 まとめ
9章 チュートリアル3 .RequireJSを使ったモジュール形式のアプリケーション
9.1 概要
9.2 マークアップ
9.3 設定項目
9.4 モデルとビューそしてコレクションのモジュール化
9.5 ルート別のモジュールの読み込み
9.5.1 JSONを使ったモジュールの設定
9.5.2 モジュールローダーのルーター
9.5.3 Node.jsを使ったpushStateの処理
9.6 その他のパッケージ形式
10章 ページ単位での表示
10.1 Backbone.Paginator
10.1.1 ライブデモ
10.2 Paginator.requestPager
10.2.1 便利なメソッド
10.3 Paginator.clientPager
10.3.1 便利なメソッド
10.3.2 その他の機能
10.3.3 プラグイン
10.3.4 初期化処理
10.3.5 スタイル設定
10.4 まとめ
11章 Backbone BoilerplateとGrunt-BBB
11.1 導入
11.2 プロジェクトの作成
11.2.1 index.html
11.2.2 config.js
11.2.3 main.js
11.2.4 app.js
11.2.5 Backbone Boilerplateのモジュールの作成
11.2.6 router.js
11.3 便利なツールやプロジェクト
11.3.1 Yeoman
11.3.2 Backbone DevTools
11.4 まとめ
12章 Backbone.jsとjQuery Mobile
12.1 jQuery Mobileを使ったモバイルアプリケーション開発
12.1.1 ウィジェットのプログレッシブエンハンスメント
12.1.2 jQuery Mobileでのナビゲーション
12.2 jQuery Mobileを利用するためのセットアップ
12.3 Backbone.jsとjQuery Mobileのワークフロー
12.3.1 具象的なビューのページへのルーティング
12.3.2 モバイル向けページテンプレートの管理
12.3.3 DOMの管理と$.mobile.changePage
12.4 jQuery Mobileの高度なテクニックの適用
12.4.1 スクリプトによるDOMの操作
12.4.2 jQuery Mobileのイベントを横取りする
12.4.3 パフォーマンス
12.4.4 マルチプラットフォーム対応のための賢い手法
13章 Jasmine
13.1 ビヘイビア駆動開発
13.2 スイート、スペック、スパイ
13.3 beforeEach()とafterEach()
13.4 有効範囲の共有
13.5 セットアップ
13.6 Backbone.jsとTDD
13.7 モデル
13.8 コレクション
13.9 ビュー
13.9.1 ビューのテスト
13.9.2 ビューの描画
13.10 練習問題
13.11 参考資料
13.12 まとめ
14章 QUnit
14.1 セットアップ
14.1.1 QUnit向けマークアップの例
14.2 アサーション
14.2.1 test()を使った基本的なテストケース
14.2.2 関数からの出力を期待される値と比較する
14.3 アサーションへの構造の追加
14.3.1 基本的なモジュール
14.3.2 setup()とteardown()
14.4 アサーションの例
14.5 フィクスチャ
14.5.1 フィクスチャの例
14.6 非同期処理
15章 SinonJS
15.1 SinonJSとは
15.1.1 スパイの基本
15.1.2 既存の関数へのスパイ
15.1.3 インスペクタのインタフェース
15.2 スタブとモック
15.2.1 スタブ
15.2.2 モック
15.3 練習問題
15.3.1 モデル
15.3.2 コレクション
15.3.3 ビュー
15.3.4 アプリケーション
15.4 参考資料
16章 おわりに
付録A さらなる探求
A.1 JavaScriptによるシンプルなMVCライブラリ
A.1.1 イベントシステム
A.1.2 モデル
A.1.3 ビュー
A.1.4 コントローラ
A.1.5 一般的な利用例
A.2 MVP
A.2.1 モデル、ビュー、プレゼンター
A.3 MVCとMVPの比較
A.4 MVC、MVPそしてBackbone.js
A.5 名前空間
A.5.1 名前空間とは
A.5.2 DocumentCloudでの利用
A.5.3 推奨される手法
A.6 Backbone.jsの依存先
A.6.1 DOMの操作
A.6.2 ユーティリティ
A.6.3 RESTに基づく永続化
A.6.4 ルーティング
A.7 他のライブラリやフレームワークとの比較
付録B 追加資料
B.1 書籍と学習プログラム
B.2 拡張機能とライブラリ
索引
続きを見る