アイソモーフィックJavaScript

Book description

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

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  賞賛の声
  5.  まえがき
  6.   アイソモーフィックJavaScriptとは
  7.   プラットフォームの進化
  8.    Ajax:アプリケーションプラットフォームの誕生
  9.    Ajax:技術的負債の蓄積
  10.   空前の嵐:とてもありふれた話
  11.    クライアント側のアーキテクチャーによる解決
  12.    訪問者に起こったこと
  13.   アイソモーフィックJavaScript:新しい世界
  14.   前途
  15.   表記上のルール
  16.   サンプルコードの使用について
  17.   意見と質問
  18.   謝辞
  19.    Jason Strimpelから
  20.    Maxime Najimから
  21. 第Ⅰ部 イントロダクションと基本的な概念
  22.  1章 アイソモーフィックJavaScriptが求められる理由
  23.   1.1 アイソモーフィックJavaScriptの定義
  24.   1.2 Webアプリケーションのアーキテクチャーの評価
  25.    1.2.1 変化を求める風潮
  26.    1.2.2 エンジニアとしての懸念
  27.    1.2.3 利用可能なアーキテクチャー
  28.   1.3 アイソモーフィックさが必要ない場合
  29.   1.4 まとめ
  30.  2章 アイソモーフィックJavaScriptのスペクトル
  31.   2.1 ビューの共有
  32.    2.1.1 テンプレートの共有
  33.    2.1.2 ビューのロジックの共有
  34.   2.2 ルーティングの共有
  35.   2.3 モデルの共有
  36.   2.4 まとめ
  37.  3章 アイソモーフィックJavaScriptのカテゴリー
  38.   3.1 環境に依存しないコード
  39.   3.2 それぞれの環境にシムが用意されたコード
  40.   3.3 まとめ
  41.  4章 サーバー側での描画を超えて
  42.   4.1 リアルタイムWebアプリケーション
  43.    4.1.1 アイソモーフィックなAPI
  44.    4.1.2 双方向のデータの同期
  45.    4.1.3 サーバー上でのクライアントのシミュレーション
  46.   4.2 まとめ
  47. 第Ⅱ部 アプリケーションの作成
  48.  5章 アプリケーションの基盤
  49.   5.1 Node.jsのインストールと実行
  50.    5.1.1 ソースコードからのインストール
  51.    5.1.2 Node.jsのREPLの操作
  52.    5.1.3 npmを使ったプロジェクトの管理
  53.   5.2 プロジェクトのセットアップ
  54.    5.2.1 プロジェクトの初期化
  55.    5.2.2 アプリケーションサーバーのインストール
  56.    5.2.3 次世代JavaScript(ECMAScript 6)のコード
  57.    5.2.4 ECMAScript 6からECMAScript 5へのトランスパイル
  58.    5.2.5 開発のワークフローのセットアップ
  59.   5.3 まとめ
  60.  6章 HTMLドキュメントを公開する
  61.   6.1 HTMLのテンプレートの提供
  62.   6.2 パスパラメーターとクエリ文字列
  63.   6.3 まとめ
  64.  7章 アプリケーションの設計
  65.   7.1 課題を理解する
  66.   7.2 ユーザーのリクエストに応答する
  67.    7.2.1 Applicationクラスの作成
  68.    7.2.2 コントローラーの作成
  69.    7.2.3 コントローラーのインスタンス化
  70.    7.2.4 コントローラーの拡張
  71.    7.2.5 レスポンスのフローの改善
  72.   7.3 まとめ
  73.  8章 アプリケーションをクライアント側に転送する
  74.   8.1 クライアント向けアプリケーションのバンドル化
  75.    8.1.1 バンドル化ライブラリの選択
  76.    8.1.2 バンドル化のタスクの作成
  77.    8.1.3 クライアント側の実装の追加
  78.   8.2 ユーザーのリクエストに応答する
  79.    8.2.1 History APIの利用
  80.    8.2.2 History APIへの応答と呼び出し
  81.   8.3 クライアント側でのルーティング
  82.    8.3.1 コントローラー上でレスポンスのフローを実行する
  83.   8.4 コードの整理
  84.   8.5 まとめ
  85.  9章 よく使われる抽象化
  86.   9.1 抽象化する理由とタイミング
  87.   9.2 cookieの読み書き
  88.    9.2.1 APIを定義する
  89.   9.3 リクエストのリダイレクト
  90.    9.3.1 APIを定義する
  91.   9.4 まとめ
  92.  10章 シリアライズ、デシリアライズ、関連付け
  93.   10.1 データのシリアライズ
  94.   10.2 コントローラーのインスタンス化
  95.   10.3 データのデシリアライズ
  96.   10.4 DOMイベントのハンドラの関連付け
  97.   10.5 リハイドレートの動作確認
  98.   10.6 まとめ
  99.  11章 ここまでの振り返り
  100.   11.1 実運用への対応
  101.   11.2 どの程度の構造が必要か知る
  102.    11.2.1 変化を受け入れる
  103.   11.3 まとめ
  104. 第Ⅲ部 実世界でのソリューション
  105.  12章 WalmartLabsでのアイソモーフィックなReact
  106.   12.1 種の起源
  107.    12.1.1 課題
  108.    12.1.2 ソリューション
  109.   12.2 Reactでのひな型のコードとパターン
  110.    12.2.1 サーバー側での描画
  111.    12.2.2 クライアント側での処理の継続
  112.   12.3 Walmartでのアプローチ
  113.   12.4 課題の克服
  114.    12.4.1 1バイト目までの時間
  115.    12.4.2 コンポーネントの描画の最適化
  116.    12.4.3 パフォーマンスの改善
  117.   12.5 今後の展望
  118.   12.6 謝辞
  119.   12.7 追記
  120.  13章 フルスタックのAngular
  121.   13.1 アイソモーフィックJavaScript:未来のWebアプリケーション
  122.   13.2 アイソモーフィックなAngular 1
  123.    13.2.1 ng-conf 2015にて
  124.   13.3 Angular 2でのサーバー側の描画
  125.    13.3.1 サーバー側での描画のユースケース
  126.    13.3.2 Webアプリケーションでのギャップ
  127.    13.3.3 Angular 2の描画アーキテクチャー
  128.    13.3.4 Prebootライブラリ
  129.   13.4 Angular Universal
  130.    13.4.1 フルスタックのAngular 2
  131.   13.5 GetHuman.comの現状
  132.   13.6 追記
  133.  14章 Brisket
  134.   14.1 課題
  135.   14.2 両者の長所
  136.   14.3 初期のBrisket
  137.   14.4 実現に向けて
  138.   14.5 コードの自由
  139.    14.5.1 テンプレート言語の自由
  140.   14.6 すべての環境で一貫したAPI
  141.    14.6.1 モデルとコレクション
  142.    14.6.2 ビューのライフサイクル
  143.    14.6.3 子ビューの管理
  144.    14.6.4 環境を問わず期待どおりに機能するツール
  145.   14.7 開発者の邪魔をしない
  146.    14.7.1 ClientAppとServerApp
  147.    14.7.2 レイアウトのテンプレート
  148.    14.7.3 その他の知見
  149.   14.8 今後の展望
  150.   14.9 追記
  151.  15章 ColonyのNode.jsを使わないアイソモーフィックアプリケーション
  152.   15.1 課題
  153.   15.2 テンプレート
  154.   15.3 データ
  155.   15.4 トランスパイルされたビューモデル
  156.   15.5 レイアウト
  157.   15.6 ページメーカー
  158.   15.7 フロントエンドのSPA
  159.   15.8 最終的なアーキテクチャー
  160.   15.9 今後の展望
  161.  16章 アイソモーフィックJavaScriptとユニバーサルJavaScript
  162.   16.1 デザインパターン群、Flux、アイソモーフィックJavaScript
  163.   16.2 いつでもJavaScriptに賭けよう
  164.   16.3 用語と理解
  165.  著者紹介
  166.  奥付

Product information

  • Title: アイソモーフィックJavaScript
  • Author(s): Jason Strimpel, Maxime Najim, 牧野 聡
  • Release date: July 2017
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118079

You might also like

book

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

by Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし

今日では多くのWebサービスがRESTアーキテクチャスタイルで実装されています。RESTは2000年にフィールディングの論文で提唱された後に爆発的に普及し洗練されてきました。一方で、本書で紹介するGraphQLは2015年にFacebookによって公開されたRESTとは異なるアプローチのアーキテクチャです。GraphQLの最大の特徴はクエリ言語を用いてデータを操作する点です。クエリ言語の表現力の高さによりクライアントは本当に必要なリクエストを送ることができます。本書ではGraphQLの概要とGraphQLを用いたWebサービスの開発方法を実装例に沿って紹介します。認証やファイルアップロードといった実践的なトピックまで踏み込んだGraphQLの実用的な入門書です。

book

データサイエンス講義

by Rachel Schutt, Cathy O'Neil, 瀬戸山 雅人, 石井 弓美子, 河内 崇, 河内 真理子, 古畠 敦, 木下 哲也, 竹田 正和, 佐藤 正士, 望月 啓充

コロンビア大学のデータサイエンス入門講義をベースとした本書では、データサイエンスを行う上で、どのようなプロセスが必要か、データサイエンティストとしてはどのようなスキルセットが必要で、どのような思考方法を選択する必要があるのかを実例とともに紹介します。Google、Microsoft、Facebookをはじめとした有名企業で使われているアルゴリズムや分析手法の紹介など、興味深い話題や事例を豊富に収録。幅広い解説で、データサイエンティストの参考になるトピックが満載の一冊です。

book

SVGエッセンシャルズ 第2版

by J. David Eisenberg, Amelia Bellamy-Royds, 原 隆文

SVGは2001年にW3C勧告として公開されたXMLベースの画像フォーマットです。ベクターグラフィックスなので拡大縮小、変形しても美しさが損なわれません。本書では簡潔なサンプルを数多く使い、基本的な図形の作成、アニメーションや複雑なグラフィックスの作成、さらにはスクリプトによる制御など、SVGの基礎から応用までをわかりやすく解説します。スマートフォンのSVG対応も進み、今後はさらに利用が膨らむであろうこのレガシーで今とても熱いフォーマットの基本を本書でマスターしましょう。

book

データサイエンスのための統計学入門 第2版 ―予測、分類、統計モデリング、統計的機械学習とR/Pythonプログラミング

by Peter Bruce, Andrew Bruce, Peter Gedeck, 黒川 利明, 大橋 真也

データサイエンスにおいて重要な統計学と機械学習に関する52の基本概念と関連用語について、簡潔な説明とその知識の背景となる最低限の数式、グラフ、RとPythonのコードを提示し、多面的なアプローチにより、深い理解を促します。データの分類、分析、モデル化、予測という一連のデータサイエンスのプロセスにおいて統計学の必要な項目と不必要な項目を明確にし、統計学の基本と実践的なデータサイエンス技法を効率よく学ぶことができます。データサイエンス分野における昨今のPython人気を反映し、第1版ではRのみの対応だったコードが、今回の改訂でPythonにも対応。コードはすべてGitHubからダウンロード可能です。