「Play Framework」は、Java/Scalaで使える軽量なWebアプリケーションフレームワークです。従来のJava開発者に加え、Web開発者や新しい技術に敏感な開発者が注目するなど、ユーザー層に広がりを見せています。Javaはこれまで、エンタープライズシステムを中心に利用されていたことから、重量級言語というイメージがありました。しかし、Play Frameworkは高い生産性を主眼に置いて開発されたため、近年、開発者たちの関心を集めるアジャイルな開発を実現できるようになります。
本書では、MVCモデルやアプリケーション作成の基礎、さらにはWeb開発でトレンドになっている通信関連の規格やそれを取り込んだ実践的な開発について、サンプルを作りながら丁寧に解説します。
1 Play Framework をはじめよう
1.1 Play Framework の基礎知識を身に付けよう
1.1.1 Struts からRails へ
1.1.2 Play Framework はどんなフレームワーク?
1.1.3 Play Framework を用意する
1.1.4 Play アプリケーションの作成
1.1.5 アプリケーションを実行してみる
1.1.6 ファイル構成について
1.1.7 MVC の構成について
1.2 Controller とView の基本を知ろう
1.2.1 Controller クラスについて
1.2.2 index とAction について
1.2.3 index はどこから来たの?
1.2.4 2 つのテンプレートファイル
1.2.5 main.scala.html について
1.2.6 式言語と引数宣言
1.2.7 index.scala.html について
1.2.8 ルーティングについて
1.3 Controller とView をカスタマイズしよう
1.3.1 Welcome を削除しよう
1.3.2 スタイルシートを設定する
1.3.3 Controller からの値の受け渡し
1.3.4 値の受け渡しのポイント
1.3.5 フォームを作成する
1.3.6 @help.form の使い方
1.3.7 Application クラスを変更する
1.3.8 ルーティング情報を追加する
1.4 テストをしよう
1.4.1 Play Framework のテスト
1.4.2 テストを実行してみよう!
1.4.3 ApplicationTest.java をチェックする
1.4.4 IntegrationTest.java をチェックする
1.4.5 テストをカスタマイズしよう
2 Model の基本をマスターする
2.1 データベース利用の準備
2.1.1 Play Framework とH2 Database Engine
2.1.2 application.conf のデータベース設定
2.1.3 各種データベース利用のための設定
2.2 Model クラスの基本
2.2.1 テーブルを設計しよう
2.2.2 Model を作成しよう
2.2.3 Controller とテンプレートの変更
2.2.4 SQL スクリプトの実行について
2.2.5 検索とFinder クラス
2.3 CRUD を作成しよう
2.3.1 エンティティの新規追加(Create 操作)
2.3.2 Controller にAction を用意する
2.3.3 create の処理について
2.3.4 routes を編集してアクセスする
2.3.5 必須項目の設定
2.3.6 エンティティの更新(Update 操作)
2.3.7 ID を入力するAction を作成する
2.3.8 setitem の追加
2.3.9 更新するエンティティの編集
2.3.10 edit の追加
2.3.11 エンティティ検索の流れを整理
2.3.12 エンティティの更新処理の作成
2.3.13 エンティティの削除(Delete 操作)
2.3.14 エンティティ削除の処理
2.4 検索をマスターしよう
2.4.1 where とExpressionList
2.4.2 find テンプレートの作成
2.4.3 Application クラスの修正
2.4.4 where とfindList
2.4.5 入力したname だけ取り出す
2.4.6 値を比較するためのメソッド類
2.4.7 like/ilike によるあいまい検索
2.4.8 in による複数候補による検索
2.4.9 エンティティの並べ替え
2.4.10 ページネーションについて
2.4.11 検索条件をテキストで指定する
2.4.12 where を使った検索
2.5 バリデーションとアノテーション
2.5.1 フォームのバリデーションについて
2.5.2 用意されているバリデーション
2.5.3 エラーメッセージのカスタマイズ
2.5.4 独自にバリデーションを作成する
2.5.5 @CreatedTimestamp アノテーションについて
2.5.6 @Transactional アノテーションについて
2.6 複数Model の連携
2.6.1 Model の連携には種類がある?
2.6.2 2 種類のModel を作成する
2.6.3 1 対1(One To One)対応について
2.6.4 1 対多/多対1(One To Many/Many To One)対応について
2.6.5 多対多(Many To Many)対応について
3 ViewとController の基本をマスターする
3.1 表示と値の受け渡しの基本
3.1.1 Controller とView についておさらい
3.1.2 Controller だけでページを作る
3.1.3 HTML を表示させるには?
3.1.4 index.scala.html だけを表示する
3.1.5 リダイレクトとリバースルーティング
3.1.6 クエリー文字列による値の受け渡し
3.1.7 routes を使った引数の指定
3.1.8 フォームの送信
3.1.9 POST 送信の処理について
3.2 ヘルパーを利用する
3.2.1 フォームヘルパーの利用
3.2.2 フォームを作成する
3.2.3 ヘルパーのパッケージについて
3.2.4 Application の作成
3.2.5 フォームの属性設定について
3.2.6 フォームのデフォルト値の設定
3.2.7 その他の<input>タグの生成
3.2.8 フィールドコンストラクタの設定
3.3 Scala を使ったテンプレートの記述
3.3.1 繰り返し出力する「@repeat」
3.3.2 Model のデータを繰り返し出力するには?
3.3.3 Message をテーブルで出力する
3.3.4 Member の名前でselect を生成する
3.3.5 式言語の適用範囲を考える
3.3.6 Tuple2 を使ったselect の動的生成
3.3.7 @if による条件分岐
3.3.8 コードブロックを利用する
3.4 Ajax による非同期のアクセス処理
3.4.1 Ajax によるデータ送信
3.4.2 JavaScript の処理の作成
3.4.3 index.scala.html を変更する
3.4.4 ajax メソッドの作成
3.4.5 JSON データの生成について
3.4.6 XML データの返信
3.4.7 XML データ送受信の流れ
3.5 MVC のテスト
3.5.1 テスト用アプリケーションの準備
3.5.2 ApplicationTest とIntegrationTest
3.5.3 テンプレートのチェック
3.5.4 ApplicationTest を作る
3.5.5 FakeApplication について
3.5.6 TestServer について
3.5.7 TestBrowser の操作
3.5.8 IntegrationTest を作る
3.5.9 test のテスト処理
3.5.10 checkModel のテスト処理
3.5.11 YAML でデータベースの初期値を用意する
3.5.12 YAML ファイルの作成
3.5.13 GlobalSettings について
3.5.14 Global.java の作成
3.5.15 テストを実行する
4 アプリケーションの企画と設計
4.1 アプリケーションの企画を決めよう
4.1.1 開発するのは診断系アプリ
4.1.2 企画時に注意すること
4.1.3 Play Framework 向きの企画、不向きな企画
4.2 アプリケーション全体の設計をする
4.2.1 開発順序
4.3 開発環境と運用環境
4.3.1 ソースコードの運用について
4.3.2 開発環境あれこれ
4.3.3 コーディング規約と命名規約
5 MVC の実装
5.1 Model の設計と実装
5.1.1 Play Framework におけるModel
5.1.2 診断アプリケーションのEbean Model の作成
5.1.3 Model に必要なふるまいを割り出す
5.1.4 値がない状態を持つかもしれない処理の結果を受け取るOption
5.1.5 Model からDDL へ
5.1.6 service パッケージ以下の構築
5.1.7 モデルサービスクラスの実装
5.1.8 ページングで最大ページ数を取得する
5.1.9 診断を行うサービスを作成する
5.2 View の設計と実装
5.2.1 Play Framework のView の性質
5.2.2 View のパッケージ設計に凝る
5.2.3 ヘルパー、タグ、ビューモデルへ問題領域を分離
5.2.4 診断アプリに必要なView をさぐる
5.2.5 パブリックディレクトリの利用法
5.2.6 レイアウトでアウトラインを共通化
5.2.7 View テンプレートのコーディング
5.3 Controller の設計と実装
5.3.1 Controller の全体設計
5.4 ルーティングの設計と実装
5.4.1 診断アプリケーションのルーティングを定義する
6 共通処理とAPI の実装
6.1 共通処理
6.1.1 共通処理の種類
6.1.2 ログ周り̶̶どんなログをとるべきか
6.1.3 アプリケーションの全体設定
6.2 API を作る
6.2.1 API のスタイル
6.2.2 提供するAPI を考える
6.2.3 API のインターフェースを考える
6.2.4 JSON 用レスポンスクラスの作成
6.2.5 API 用のサービスクラスを作成
7 テスト・デプロイ・管理
7.1 アプリケーションのテスト
7.1.1 テスト駆動開発に向けて
7.1.2 テストの種類
7.1.3 テストの構造、命名規則
7.1.4 テストの実行と確認
7.1.5 テスト全体の設定
7.1.6 ユーティリティクラスのユニットテスト
7.1.7 フォームバリデーションのテスト
7.1.8 Ebean モデル周りのユニットテスト
7.1.9 Controller のテスト
7.1.10 API のテスト
7.1.11 View の操作も含めたファンクショナルテスト
7.2 本番環境へのデプロイ
7.2.1 Heroku による本番環境構築
7.2.2 Heroku へデプロイしてみる
7.2.3 本番環境向けの処理と起動、設定
7.3 管理画面
7.3.1 アプリケーションとアプリケーションの管理画面の関係
7.3.2 管理画面プラグインあれこれ
7.3.3 管理画面を簡単に作れる環境がどんどん整ってきている
7.3.4 プラグインを用いた管理画面の構築
8 Play Tips
8.1 クライアントセッションとキャッシュ
8.1.1 Play Framework におけるセッション
8.1.2 Cookie を扱う
8.1.3 キャッシュにデータを一時保存する
8.1.4 キャッシュ用のヘルパーメソッド
8.2 アプリケーションの多言語対応
8.2.1 i18n とPlay Framework
8.2.2 言語ファイルとController 内での翻訳
8.2.3 View 内での翻訳
8.3 Play Framework とセキュリティホール
8.3.1 Play Framework とセキュリティアップデート
8.3.2 Play Framework のセキュリティ対策
8.3.3 Play Framework のバージョンアップ
8.4 認証周りのサポート
8.4.1 Play Framework における認証実装の手順
8.4.2 フィルターの利用設定を行う(手順(1)、(2))
8.4.3 ログイン用認証ユーザーのEbean モデルの作成(手順(3))
8.4.4 Security ヘルパーの定義(手順(4))
8.4.5 ログインモデルの定義(手順(5))
8.4.6 認証用にController の拡張(手順(6))
8.4.7 ログインフォームのView を用意し、ルーティングを設定する(手順(7)、(8))
8.4.8 テストユーザーの作成
8.5 Play Framework の関数型プログラミング支援ライブラリ
8.5.1 Play Java とScala の関係
8.5.2 Callback とFunction
8.6 バッチ処理
8.6.1 バッチ処理とWeb アプリケーション
8.6.2 アプリケーションの起動時もしくは終了時に処理を行う
8.6.3 一定時間おきに起動し、処理を行う
8.6.4 ある日時が来ると起動して処理を行う
8.6.5 キューに貯め込まれた処理を順に実行する
8.7 WebSocket を利用した通信
8.7.1 プッシュ通信を可能にするWebSocket の概要
8.7.2 サンプルの概要
8.7.3 WebSocket コンテンツのためのController
8.7.4 イベントのインターフェースを作成する
8.7.5 Actor の定義
8.8 Ebean のSQL とトランザクション
8.8.1 SQL の利用
8.8.2 トランザクション
9 Scala による開発
9.1 Java プログラマのためのScala 超入門
9.1.1 Scala を準備する
9.1.2 Scala のスクリプトを作る
9.1.3 文・値・変数
9.1.4 制御構文
9.1.5 配列・コレクションについて
9.1.6 関数について
9.1.7 クラスとオブジェクト
9.2 Scala によるPlay アプリケーションの作成
9.2.1 Scala ベースのアプリケーションを作る
9.2.2 Scala によるController クラス
9.2.3 フォームを送信する
9.2.4 Application.scala の内容
9.2.5 application.conf の追記
9.2.6 Anorm によるデータベースアクセス
9.2.7 データベースアクセスの実際
9.2.8 index/add.scala.html の準備
9.2.9 Application.scala の作成
9.2.10 Scala によるテストコード
付録 開発/運用環境のセットアップ
A.1 Play Framework のインストール
A.1.1 Play Framework 実行に必要なもの
A.1.2 Play Framework の入手
A.1.3 Play Framework の構成
A.1.4 環境変数の設定
A.1.5 開発環境とEclipse
A.1.6 Scala 用プラグインのインストール
A.1.7 プロジェクトのEclipse へのインポート
A.1.8 External Tools の設定
A.2 Heroku へのデプロイ
A.2.1 Heroku のアカウントについて
A.2.2 Heroku Toolbelt について
A.2.3 Play アプリケーションの修正
A.2.4 Heroku へのデプロイ
A.2.5 Heroku Dashboard で確認する
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 034 リスト1.10の15行目、25行目(空白行含む) |
未 | 未 |
|
2014.05.15 | ||||||
1刷 | 074 本文9行目 |
未 | 未 |
|
2014.05.15 |