ISBN 9784873115542
ステートフルJavaScript : MVCアーキテクチャに基づくWebアプリケーション
- 出版社
- オライリー・ジャパン
- 刊行
- 2012-06
Amazonアソシエイトおよび楽天アフィリエイト等の広告リンクを含みます。Amazonのアソシエイトとして tech-book.net は適格販売により収入を得ています。
詳細
概要
クライアントサイド MVC でステートフルな Web アプリを設計・実装する
想定読者
JavaScript の基礎を習得し、単純な Ajax アプリから一歩進んでアーキテクチャを整理したいフロントエンドエンジニア
こんな人には向いていない
- JavaScript を初めて学ぶ段階の入門者。本書は MVC 設計の理解を前提としており、基礎文法レベルから始める読者には難度が高い
- React / Vue などモダンフレームワークをすでに業務で運用しているエンジニア。扱うライブラリは Backbone / Spine / JavaScriptMVC であり、2012年出版の設計パターンが中心になる
- サーバーサイドの MVC 実装のみを深めたい読者。本書のスコープはクライアントサイドに限定されている
読了後にできるようになること
- クライアントサイドで Model・View・Controller を分離し、状態を明示的に管理する設計手法
- イベント駆動によるモデルとビューの疎結合な連携パターン
- Backbone.js・Spine・JavaScriptMVC それぞれの特性と使い分けの判断軸
- WebSocket・File API・HTML5 History API を活用したリアルタイム/ネイティブライク機能の実装
- 依存関係管理とデプロイメントを含む、フロントエンドアプリのライフサイクル全体の把握
- テスト・デバッグまでを含めたクライアントサイドアプリの品質管理の基礎
本書のキー概念(章解説)
- 第 1 章 MVC とクラス設計 — 本書全体の設計思想の前提となる章。最初に熟読する価値がある
- 第 2 章 イベント管理
- 第 3 章 モデルとデータ
- 第 4 章 コントローラと状態管理 — ステートフル設計の中心。実務設計の参照点として繰り返し読みやすい
- 第 5 章 ビューとテンプレート
- 第 6 章 依存関係の管理
- 第 7 章 ファイル操作
- 第 8 章 リアルタイム Web
- 第 9 章 テストとデバッグ
- 第 10 章 デプロイメント
- 第 11 章 Spine
- 第 12 章 Backbone
- 第 13 章 JavaScriptMVC
ハイライト
- ステートフルなコードとMVCを組み合わせることにより、MVCの3要素をクライアント側で実行することが可能になり、単なるAjaxアプリケーションでは実現できないよりデスクトップアプリに近いエクスペリエンスを提供できる。(本書の核心的な価値提案が最も端的に表現されている箇所)
外部からの言及
- 出版当時(2012年)はクライアントサイド MVC の体系的な日本語解説書が少なく、Backbone.js 等を採用する開発現場での参照書として評価されていた。現在は設計原理の参照用途が中心(other)
編集メモ
Qiita 記事からの直接言及は確認できず。2012年出版で扱うフレームワーク(Backbone/Spine/JavaScriptMVC)は現行主流から外れており、クライアントサイド MVC の原理理解を目的とした補完的な選択肢として位置づける
読む前に押さえておきたいこと
- JavaScript の関数・プロトタイプ・クロージャの基本概念
- DOM 操作と Ajax による非同期通信の実装経験
- オブジェクト指向設計の基礎概念(継承・カプセル化)
学習のコツ
- 1〜5章はフレームワーク非依存のクライアントサイド MVC 原理を扱うため、現代的な文脈でも有効。まずこの部分を通読してから11〜13章のフレームワーク各論に進む
- 11〜13章(Spine/Backbone/JavaScriptMVC)は現在では直接的な実務利用が難しいが、各ライブラリの設計判断の違いを比較する目的で読むと、現代フレームワーク選定の理解補助になる
- 第4章「コントローラと状態管理」は React/Vue の状態管理設計を理解するための歴史的背景として活用できる
出版社による内容紹介
ステートフルなJavaScriptアプリケーション開発についての解説書。WebアプリをMVCモデルに沿って開発しながら、その背後にある理論から各種ライブラリを利用した実践に至るまで幅広く解説。ステートフルなコードとMVCを組み合わせることにより、MVCの3要素をクライアント側で実行することが可能になり、単なるAjaxアプリケーションでは実現できないよりデスクトップアプリに近いエクスペリエンスを提供できる。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。