書籍概要

実践JS サーバサイドJavaScript入門 

著者
発売日
更新日

概要

クラウド,並行処理に代表される次世代を意識したWebアプリ開発の現場では,サーバサイド技術として,関数型言語と並びJavaScriptが注目されています。クライアント/サーバサイドをJavaScriptに統一することで,完全なRPCプログラミングが可能になります。本企画は,注目されているJavaScriptのサーバサイド技術を中心に,クラウド化を見据えた次世代Webアプリ開発のノウハウを紹介する書籍です。

こんな方におすすめ

  • サーバサイドJavaScriptに興味ある人

目次

Part1 サーバサイドJavaScript序論

1章 サーバサイドJavaScriptの動向

  • 1.1 JavaScriptの歴史
    • 1.1.1 JavaScriptの広がり
  • 1.2 JavaScriptの規格と実装
    • 1.2.1 ECMAScriptとJavaScript
    • 1.2.2 JavaScriptのバージョン
    • 1.2.3 JavaScript処理系
    • コラム JavaScriptのスピード競争
    • 1.2.4 JavaScriptライブラリ
    • 1.2.5 CommonJS
    • 1.2.6 Java6のスクリプティングAPI
  • 1.3 サーバサイドJavaScriptの背景
    • 1.3.1 Webアプリ開発現場の言語混在
    • 1.3.2 バリデーションコードの重複
    • 1.3.3 AJAXとRPC
    • 1.3.4 負荷分散としてのクライアントサイドJavaScript
  • 1.4 JavaScriptで見るインターネットの動向
    • 1.4.1 JSON
    • 1.4.2 HTML5
    • 1.4.3 クラウドコンピューティング
    • 1.4.4 ドキュメントデータベースとREST
    • コラム require.js

Part2 共通API

2章 サーバサイドJavaScriptに共通APIが必要な背景

  • 2.1 はじめに
  • 2.2 クライアントサイドJavaScriptとサーバサイドJavaScript
    • 2.1.1 JavaScript言語とその他のプログラミング言語
    • 2.2.2 JavaScriptコマンドラインツール
  • 2.3 ホストオブジェクト
    • 2.3.1 拡張言語
    • 2.3.2 ホスト環境
    • 2.3.3 グローバルオブジェクトを参照する変数
  • 2.4 標準APIの動き
    • 2.4.1 拡張API

3章 標準オブジェクト

  • 3.1 標準組み込みオブジェクト
    • 3.1.1 オブジェクトの互換性
  • 3.2 Objectクラス
    • 3.2.1 プロトタイプチェーン
    • 3.2.2 プロトタイプチェーンの具体例
  • 3.3 グローバルオブジェクト
    • 3.3.1 クライアントサイドJavaScriptにおけるグローバルオブジェクト
    • 3.3.2 グローバルオブジェクトのプロパティ
  • 3.4 Stringクラス
  • 3.5 Arrayクラス
  • 3.6 Functionクラス
  • 3.7 Numberクラス
  • 3.8 Booleanクラス
  • 3.9 Mathオブジェクト
  • 3.10 Dateクラス
  • 3.11 RegExpクラス
  • 3.12 JSONオブジェクト
    • 3.12.1 JSONとは
    • 3.12.2 JSONオブジェクト
  • 3.13 エラークラス
  • 3.14 E4X
    • 3.14.1 XMLオブジェクト生成
    • 3.14.2 XMLの読み書き
    • 3.14.3 XMLノードの選択
    • 3.14.4 XMLList
    • 3.14.5 E4Xの演算
    • 3.14.6 XMLの名前空間
    • 3.14.7 E4XのAPI
    • コラム サーバサイドでDOM

4章 CommonJS

  • 4.1 CommonJSとは
  • 4.2 モジュール
    • 4.2.1 CommonJSのモジュール規格
    • 4.2.2 公開側コード
    • 4.2.3 利用側コード
  • 4.3 ファイル操作
    • 4.3.1 I/Oストリーム処理
    • 4.3.2 バイト型
    • 4.3.3 テキスト処理
    • 4.3.4 同期/非同期
  • 4.4 システムAPI
  • 4.5 ネットワーク(ソケット)
    • 4.5.1 ネットワークAPI
    • 4.5.2 XMLHttpRequest
    • 4.5.3 WebSocket
  • 4.6 並列処理(マルチスレッド)
    • 4.6.1 排他制御
    • 4.6.2 Web Workers
  • 4.7 RDB操作
  • 4.8 パッケージ
  • 4.9 JSGI
    • 4.9.1 JSGIの概要
    • 4.9.2 JSGIの具体例
  • 4.10 CommonJS実装
    • 4.10.1 Flusspferd
    • 4.10.2 Narwhal
    • 4.10.3 node.js

5章 JavaのスクリプティングAPI

  • 5.1 はじめに
  • 5.2 Java6付属のjrunscript
  • 5.3 JVM上のJavaScriptコード
  • 5.4 型変換
    • 5.4.1 配列
    • 5.4.2 コレクション
  • 5.6 JavaからJavaScriptコードを呼ぶ
  • 5.7 ホストオブジェクトの渡し方
    • 5.7.1 ホストオブジェクト経由でJavaオブジェクトにアクセス
    • 5.7.2 JavaからJavaScriptのコンテキストにアクセス

Part3 サーバサイドJavaScript実行環境

6章 アーキテクチャ概論

  • 6.1 Webアプリのアーキテクチャ
    • 6.1.1 技術要素
    • 6.1.2 Webアプリ
  • 6.2 セッション管理
    • 6.2.1 クッキーによるセッション管理
  • 6.3 AJAX
  • 6.4 MVCアーキテクチャ
    • 6.4.1 モデル
  • 6.5 サーバサイドJavaScriptの分類
    • 6.5.1 サーバサイドJavaScriptの概観
    • 6.5.2 分類のための用語整理
    • 6.5.3 HTTP処理での分類
    • コラム 通信プロトコルの変換は必要?
    • 6.5.4 JavaScript処理系での分類
    • コラム node.jsブーム
    • 6.5.5 APIでの分類
    • コラム Aptana Jaxerについて

7章 非JVMアプリコンテナ

  • 7.1 smjsのcgi
    • 7.1.1 CGI
    • 7.1.2 Apacheの設定例
    • 7.1.3 具体例
    • 7.1.4 まとめ
  • 7.2 Jack
    • 7.2.1 Jackとは
    • 7.2.2 JSGI
    • 7.2.3 NarwhalのAPI
    • 7.2.4 JackのWebアプリ
    • 7.2.5 Nitro
    • 7.2.6 まとめ
  • 7.3 v8cgi
    • 7.3.1 v8cgiとは
    • 7.3.2 v8cgiのAPI
    • 7.3.3 v8cgiのWebアプリ
    • コラム ビュー技術
    • 7.3.4 まとめ
  • 7.4 Juice
    • 7.4.1 Juiceとは
    • 7.4.2 JSGIとJuice
    • 7.4.3 Juice実行の準備
    • 7.4.4 JuiceのWebアプリ
    • 7.4.5 まとめ
  • 7.5 JSEXT
    • 7.5.1 JSEXTとは
    • 7.5.2 JSEXTのAPI
    • 7.5.3 モジュール
    • 7.5.4 JSEXTのWebアプリ
    • 7.5.5 まとめ

8章 JVM系アプリコンテナ

  • 8.1 Myna
    • 8.1.1 Mynaとは
    • 8.1.2 Myna実行の準備
    • 8.1.3 MynaのAPI
    • 8.1.4 MynaのWebアプリ
    • コラム rawDataのエスケープ処理とXSS
    • 8.1.5 まとめ
  • 8.2 RingoJSとHelma
    • 8.2.1 RingoJSとHelma
    • 8.2.2 Helmaの簡単なWebアプリ
    • 8.2.3 HelmaのMVC
    • 8.2.4 HelmaのORM
    • 8.2.5 RingoJS
    • 8.2.6 RingoJSのAPI
    • コラム パッケージシステムの乱立
    • 8.2.7 RingoJSの簡単なWebアプリ
    • 8.2.8 RingoJSのMVCアーキテクチャ
    • 8.2.9 RingoJSのJSONデータベース
    • 8.2.10 CRUD
    • 8.2.11 まとめ

Part4 ドキュメントDB

9章 CouchDB

  • 9.1 NoSQLとドキュメントDB
  • 9.2 CouchDBとは
    • 9.2.1 CouchDBの特徴
    • 9.2.2 CouchDBのアーキテクチャ概論
    • 9.2.3 起動と終了
  • 9.3 データベース操作
    • 9.3.1 データベースの作成
    • 9.3.2 データベース情報の取得
    • 9.3.3 データベースの削除
  • 9.4 ドキュメント操作
    • 9.4.1 ドキュメントの作成
    • 9.4.2 ドキュメントの更新
    • 9.4.3 更新と並行処理
    • 9.4.4 更新の注意
    • 9.4.5 ドキュメントの削除
    • 9.4.6 名前付きドキュメントの作成
    • 9.4.7 添付ファイル
    • 9.4.8 ドキュメント一括操作
    • 9.4.9 デザインドキュメント
  • 9.5 CouchDBとMap/Reduce
    • 9.5.1 ビュー
    • 9.5.2 Map/Reduce一般論
    • 9.5.3 CouchDBのMap/Reduce
    • 9.5.4 ビューとMap/Reduce
    • 9.5.5 組み込みのreduce関数
  • 9.6 クエリ
    • 9.6.1 ビューのクエリ
    • 9.6.2 ビューの具体例
    • 9.6.3 ビューの具体例(reduceを使う例)
  • 9.7 ハンドラとCouchDBアプリ
    • 9.7.1 CouchDBアプリのアーキテクチャ分類
    • 9.7.2 CouchDBアプリの開発
    • 9.7.3 showハンドラ
    • 9.7.4 listハンドラ
    • 9.7.5 updateハンドラ
    • 9.7.6 テンプレート言語
    • 9.7.7 CouchDBの周辺ツール
  • 9.8 スキーマフリー(スキーマレス)のデータ設計(データモデル)
    • 9.8.1 1対多の関連
    • 9.8.2 多対多の関連
  • 9.9 まとめ

10章 MongoDB

  • 10.1 MongoDBとは
    • 10.1.1 MongoDBの特徴
    • 10.1.2 MongoDBのアーキテクチャ
    • 10.1.3 起動と終了
  • 10.2 データベース操作
  • 10.3 コレクション操作
  • 10.4 ドキュメント操作
    • 10.4.1 ドキュメント作成と更新
    • 10.4.2 ドキュメント取得と更新
    • 10.4.3 ドキュメント削除
    • 10.4.4 フィールドの更新処理
  • 10.5 クエリ
    • 10.5.1 クエリ条件
    • 10.5.2 埋め込み配列
    • 10.5.3 埋め込みオブジェクト
    • 10.5.4 インデックス
    • 10.5.5 サーバサイドJavaScript
    • 10.5.6 集計処理
  • 10.6 MongoDBのMap/Reduce
    • 10.6.1 Map/Reduceの具体例
  • 10.7 スキーマフリー(スキーマレス)のデータ設計(データモデル)
  • 10.8 まとめ

Part5 クラウドの拡張言語

11章 Google Apps Scriptによるクラウドコンピューティング

  • 11.1 サーバサイドの拡張言語
  • 11.2 Google Apps Scriptとは
    • 11.2.1 開発環境
    • 11.2.2 簡単なスクリプト
    • 11.2.3 ボタンイベント
    • 11.2.4 デバッグ
    • 11.2.5 スクリプトギャラリー
    • コラム Google Apps Scriptのファイル(モジュール)分割
    • 11.2.6 Spreadsheetプログラミング
    • コラム Webアンケートアプリ
    • 11.2.7 応用
    • 11.2.8 GoogleサイトのGoogle Apps Script
  • 11.3 まとめ

Part6 Webアプリ実践

12章 アーキテクチャ

  • 12.1 アーキテクチャ概要
    • 12.1.1 コンポーネント選択について
  • 12.2 Google App Engine for Java(GAE/J)
    • 12.2.1 GAE/Jの開発概要
    • 12.2.2 GAE/Jの開発手順
    • 12.2.3 データストア
    • 12.2.4 JDOプログラミング
    • 12.2.5 エンティティクラス
    • 12.2.6 PersistenceManagerクラス
    • 12.2.7 CRUD
    • 12.2.8 クエリ
    • 12.2.9 関連
    • 12.2.10 トランザクション処理
  • 12.3 JAX.RSとJersey
    • 12.3.1 Jerseyの概要
    • 12.3.2 Jerseyアプリの開発手順
    • 12.3.3 リソースクラス
    • 12.3.4 データバインディング
    • 12.3.5 フォワードとリダイレクト
  • 12.4 Rhino
    • 12.4.1 Rhino API
    • 12.4.2 ホストオブジェクト
    • 12.4.3 JVM上のJavaScriptコード
    • 12.4.4 その他のRhino API
    • 12.4.5 GAE/JとRhino
    • コラム PermGenに注意

13章 設計と実装

  • 13.1 作成アプリの機能概要
  • 13.2 設計の考え方
    • 13.2.1 最初の設計
  • 13.3 コードの解説
    • 13.3.1 コード一覧
    • 13.3.2 エンティティクラス
    • 13.3.3 Jerseyリソースクラス
    • 13.3.4 DI
    • 13.3.5 イベントとサーバサイドJavaScript実行
    • 13.3.6 ビュー処理とユーザインターフェース
    • 13.3.7 サーバサイドJavaScriptのコード例
  • 13.4 設計の評価
    • 13.4.1 依存性
    • 13.4.2 役割と分割
    • 13.4.3 改善案
  • 13.5 まとめ

サポート

現在サポート情報はありません。

商品一覧