Backbone.jsアプリケーション開発ガイド

Book description

Backbone.jsをはじめとして、コードの構造や保守の容易さを向上させてくれるJavaScriptフレームワークが人気です。本書の解説は、MVCによって構造化されたJavaScript SPAアプリケーションを作成する方法など、Backbone.jsについての基礎的な事柄にとどまりません。モジュール形式の開発やさまざまなプラグインの紹介、開発者がよく遭遇する問題への解決策、アプリケーションの骨組みの自動生成やユニットテストに至るまで、Backbone.jsアプリケーション開発のさまざまな局面を多角的にとらえた一冊です。

Table of contents

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

Product information

  • Title: Backbone.jsアプリケーション開発ガイド
  • Author(s): Addy Osmani, 牧野 聡
  • Release date: February 2014
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873116587

You might also like

book

Go言語によるWebアプリケーション開発

by Mat Ryer, 鵜飼 文敏, 牧野 聡

Goプログラミングについて一歩踏み込んだプロユースの解説書。読者はシンプルなコードを書きながら、実運用アプリケーションの開発で使うスキルとテクニックを学ぶことができます。本書のサンプルプログラムはどれもシンプルですがとても実践的です。拡張性、並行処理、高可用性といったエンタープライズアプリケーションの開発で直面する現実的な問題に対するソリューションが含まれています。本書を読めば、実際の業務に必要な技能――Goによる開発手法および関連技術の使い方――をマスターし、ツールやプログラムの開発スキルを迅速かつ簡単に向上できます。日本語版では、監訳者の鵜飼文敏氏による巻末付録「Goらしいコードの書き方」を収録しました。

book

RStudioではじめるRプログラミング入門

by Garrett Grolemund, 大橋 真也, 長尾 高弘

「統計を使わずに、Rを純粋にプログラミング言語として学ぼう」というコンセプトに基づいて書かれた本書は、統計学の難しい知識がなくてもプログラミングの経験があまりなくても、プログラミングを学んでみようという意欲さえあれば読める、画期的な書籍です。サイコロを作る、ゲームで遊べるトランプを作る、スロットマシンを作る、という3つの簡単なプロジェクトに取り組む過程で、Rのプログラミング統合環境、RStudioを活用して、楽しみながら効率的にRのプログラミングスキルを身に付けていきます。統計だけに使うのはもったいない、Rのプログラミング言語としての隠れた魅力と可能性を紹介します。

book

ユーザーストーリーマッピング

by Jeff Patton, 川口 恭伸, 長尾 高弘

本書はユーザーストーリーマッピングの作者、ジェフ・パットンが自ら開発した手法について書き下ろした書籍です。ストーリーマッピングの概要、優れたストーリーマッピングを作るためのコンセプトから、ユーザーストーリーを完全に理解する方法、ストーリーのライフサイクルの認識、イテレーションやライフサイクルごとにストーリーを使う方法まで、手法全体を包括的に解説します。製品開発、UXデザイン、業務要件定義の現場で、関係者が共通理解を持ち、使いやすく・実現可能なサービスや商品を作りたいと考えているすべての人、必携の一冊です。

book

アイソモーフィックJavaScript

by Jason Strimpel, Maxime Najim, 牧野 聡

アイソモーフィックJavaScriptは、クライアントサイド(ブラウザ)とサーバーサイドで同じコードを実行できるようにするためのフレームワークの総称。本書では、従来のアプリケーションが持つ問題点(読み込みの遅さ、SEO対策の困難さなど)を明らかにするところから始め、アイソモーフィックなアプリケーションの分類やアイソモーフィックさの度合いについて理解したうえで、アイソモーフィックなJavaScriptフレームワークを構築するための実践手法を解説し、Walmart、Airbnb、Facebook、Netflixといった大企業がアイソモーフィックJavaScriptを選んだ理由を明らかにします。読者は、なぜこのアプリケーションアーキテクチャーが、ページ読み込み速度やSEOコンパチビリティといった、ビジネス面でクリティカルな問題を解決するためのソリューションとして人気上昇中なのかを学べます。