山田 正樹 著
山本 剛 著
上原 潤二 著
永井 昌子 著
杉山 清美 著
杉浦 孝博 著
笠原 史郎 著
香月 孝太 著
福岡 竜一 著
伊堂寺 北斗 著
Grailsは、Ruby On Railsの影響を受けて開発された、フルスタックWebアプリケーションフレームワークです。Groovy(Javaと極めて親和性の高い動的なスクリプト言語)を用いてビジネスロジックを記述します。Grailsの最大の特徴は、Java開発で蓄積された経験や資産(品質、信頼性、スケーラビリティ)をそのまま活かせるという点であり、Ruby On Railsが不得手としていたエンタープライズ系のシステム開発を迅速に行なうことができます。
本書では、Grailsの基礎から、モデル駆動開発によるGrailsアプリケーションの開発手法/手順、運用、Grailsの拡張(プラグイン作成)まで、わかりやすいサンプルプログラムを交えて徹底解説します。Javaシステム開発者(Web系アプリケーション開発者/システムアーキテクト/プロジェクト管理者)、Ruby On RailsとEJB/J2EEに限界を感じている開発者にお勧めの1冊です。
1 Grailsとは何か
1.1 Grailsの基盤
1.1.1 言語/プラットフォーム
1.1.2 フレームワーク
1.1.3 内部DSL
1.2 Grailsは何に使えるか
1.3 Grailsの仕組み
1.3.1 アーティファクト
1.3.2 プラグイン
1.3.3 Grailsコマンド
1.4 Spring/Hibernateとは
1.4.1 Spring Framework
1.4.2 Hibernate
1.5 日常会話的モデル駆動開発としてのGrails
1.6 Grailsとアスペクト
1.6.1 アスペクト指向プログラミング(AOP)
1.6.2 アーキテクチャ上のアスペクト
1.7 Grailsとテスト駆動開発
1.7.1 表明
1.7.2 単体/統合テスト
1.7.3 機能テスト
1.8 Grailsを用いた開発プロセス
1.8.1 どんなチームで?
1.8.2 どんな時間フレームで?
1.8.3 どうやって要求をまとめる?
1.8.4 アジャイル開発プロセスとGrails
1.9 Grailsを使えるようにする
1.9.1 手順1 Grailsをダウンロードする
1.9.2 手順2 Grailsをインストールする
1.9.3 手順3 Grailsを使えるように設定する
1.9.4 手順4 Grailsを使ってみる
1.10 Grailsの開発環境
1.10.1 シェル+エディタ
1.10.2 IntelliJ IDEA
1.10.3 Eclipse
1.10.4 NetBeans
2 Groovyの概要
2.1 Groovyとは
2.2 Groovyひとめぐり
2.3 Groovyの実行
2.3.1 Groovyコンソール
2.3.2 Groovy端末シェル
2.3.3 他の実行方法
2.4 クラス定義
2.4.1 クラス宣言
2.4.2 メソッドの定義と呼び出し
2.4.3 フィールドの定義と参照
2.4.4 コンストラクタ
2.5 データ型
2.5.1 文字列型
2.5.2 マップ
2.5.3 リスト
2.5.4 クロージャ
2.5.5 その他数値型など
2.6 制御構造/構文
2.6.1 真偽値の扱い
2.6.2 for文
2.6.3 switch-case文
2.6.4 その他の違い
2.7 式と演算子
2.7.1 Groovy特有の演算子
2.7.2 比較演算
2.7.3 演算子のオーバーロード
2.8 正規表現処理
2.8.1 正規表現の演算子
2.8.2 正規表現による置換処理
2.9 動的プログラミング機能
2.9.1 ExpandoMetaClass
2.9.2 invokeMethod()、get/setProperty()
2.9.3 methodMissing()、PropertyMissing()
2.9.4 use文/カテゴリ
2.10 その他の機能
2.10.1 ビルダー
3 ドメインモデルとスカッフォールディング
3.1 要求
3.2 プロセス
3.3 ドメインモデリング
3.3.1 ユースケースの作成
3.3.2 ドメインモデルの作成
3.3.3 プロジェクトの作成
3.3.4 ドメインクラスの作成
3.3.5 ドメインクラスのテスト
3.3.6 スカッフォールディング
3.3.7 アプリケーションの起動
4 コントローラ
4.1 ビジネスプロセス、ビジネスルールの検討
4.1.1 ビジネスプロセスの検討
4.1.2 ビジネスルールの検討
4.2 画面の検討
4.2.1 画面遷移とレイアウト
4.3 アプリケーションの構成
4.3.1 全体の構成
4.3.2 MVCモデルとの対比
4.3.3 実装の範囲について
4.4 コントローラの作成
4.4.1 コントローラの作成方針
4.4.2 Web Flowとは
4.4.3 状態遷移図の作成
4.4.4 コントローラの作成
4.4.5 アクションの作成
4.4.6 Flowアクションの作成
4.4.7 ステートの作成
4.5 コントローラのテスト
4.5.1 コントローラのテストについて
4.5.2 Web Flowのテスト
4.5.3 コントローラのテストケース作成
4.5.4 テストケースの実行
5 サービス
5.1 サービスの作成
5.1.1 サービスとは
5.1.2 サービスの作成
5.1.3 サービスのトランザクションについて
5.1.4 ビジネスロジックの記述
5.1.5 コントローラの変更
5.1.6 サービスのインジェクション
5.2 サービスのテスト
5.2.1 サービスのテストケース作成
5.2.2 サービスのテストケースの実行
5.2.3 コントローラのテストケースの再実行
5.2.4 コントローラのテストケースの変更
5.2.5 コントローラのテストケースの実行
6 ビューと機能テスト
6.1 ビューの作成
6.1.1 GSPとは
6.1.2 ビューへ値を渡す
6.1.3 コントローラから渡された値を使う
6.1.4 GSPで参照できる変数
6.1.5 GSPタグ
6.1.6 Sitemeshとは
6.1.7 GSPによるビューの作成
6.1.8 アプリケーションの実行とファイルの変更
6.2 機能テスト
6.2.1 機能テストとは
6.2.2 Canoo WebTestプラグインのインストール
6.2.3 Canoo WebTestを使用したテストケースの作成
6.2.4 テストケースの実行
6.2.5 イテレーション2~ビジネスプロセス/ルールのまとめ
7 プラグインを使ったセキュリティとAjax
7.1 セキュリティ対策
7.1.1 アカウントの作成
7.1.2 セキュリティ対策の検討
7.1.3 Acegi Plugin
7.2 例外処理
7.2.1 error.gsp
7.3 ブラッシュアップ
7.3.1 Grails+Ajax
7.3.2 Rich Client/Ajax Plugins
7.3.3 ファイルのアップロード
7.3.4 メッセージ
8 運用
8.1 ログ出力の設定
8.1.1 log4jの設定
8.2 データベースの設定
8.2.1 DataSourceの設定
8.2.2 PostgreSQLを使う
8.3 Java VMのメモリサイズの設定
8.3.1 Grailsの設定
8.3.2 Tomcatの設定
8.4 アプリケーションサーバへの配備
8.4.1 warファイルの作成
8.4.2 warファイルのアプリケーションサーバへの配備
8.5 ログファイルの移動
8.5.1 Quartzプラグインを使う
8.5.2 Jobファイルの作成
9 プラグインの概要と基礎
9.1 プラグインの概要
9.1.1 Grails組み込みプラグインを知る
9.1.2 プラグインで追加できる機能
9.1.3 プラグイン開発に必要な知識と実装別の難易度
9.2 プラグインプロジェクトの構造~プロジェクト作成とパッケージング
9.2.1 プラグインプロジェクトの作成
9.2.2 プラグインプロジェクトのパッケージング
9.2.3 パッケージ時に含まれるファイルと含まれないファイル
9.3 シンプルなプラグイン
9.3.1 プラグインプロジェクトの作成
10 プラグイン記述ファイル~高機能なプラグイン開発
10.1 プラグイン記述ファイル~XXXXGrailsPlugin.groovy
10.2 プラグイン記述ファイルのプロパティ
10.2.1 プラグイン情報定義プロパティ
10.2.2 プラグイン詳細定義プロパティ
10.3 プラグインからGrailsを操作する各クロージャと参照できるプロパティ
10.3.1 doWith~読み込みの仕組み
10.4 Springビーンビルダ~doWithSpring
10.4.1 Springビーンビルダの利用
10.4.2 ビーンビルダ実験用スクリプト~SpringBuilder.groovy
10.4.3 Springビーンビルダの基本
10.4.4 Factoryメソッドの使用例とクロージャの最初の引数
10.4.5 Factoryビーンの使用例
10.4.6 ダイナミックにビーン名を定義する
10.4.7 匿名入れ子ビーン
10.4.8 抽象ビーン、チャイルドビーンを定義する
10.4.9 ビーンの参照
10.5 ApplicationContextポスト処理~doWithApplicationContext
10.6 web.xmlの編集~doWithWebDescriptor
10.6.1 doWithWebDescriptorクロージャ
10.6.2 サーブレットの追加
10.6.3 XmlSlurperの使用例
10.7 ダイナミックメソッドの追加~doWithDynamicMethods
10.7.1 GrailsApplicationの評価ルールとGrailsClassの利用方法
10.7.2 doWithDynamicMethodsクロージャでメソッドを追加する
10.7.3 doWithDynamicMethodsの第1引数
10.8 自動リロードイベント~watchedResources、onChange
10.8.1 イベントオブジェクト
10.8.2 プラグイン依存連携用プロパティ
10.9 Email Senderプラグインを開発する
10.9.1 プラグイン開発準備
10.9.2 メール送信用ビーンの実装
10.9.3 メールサーバ情報、メール送信者を簡単に変更できるようにする
10.9.4 メール送信メソッドの追加
10.9.5 リロードイベント対応とプラグイン依存の設定
11 プラグインを便利にする機能~スクリプト、アーティファクト
11.1 スクリプト~コマンドの追加
11.1.1 Gantスクリプト
11.1.2 スクリプトのイベント処理
11.2 独自アーティファクト(Artefect)タイプの追加
11.2.1 Artefact APIとその仕組み
11.2.2 Emailアーティファクトを作ってみる
11.3 公式Grailsプラグイン
11.3.1 主要な公式Grailsプラグイン
A Grailsコマンドリファレンス
A.1 使い方
A.2 組み込みコマンド
全コマンド一覧
B GSPタグリファレンス
B.1 使い方
B.2 組み込みGSPタグ
C ダイナミックメソッドリファレンス
C.1 すべてのオブジェクトに共通のダイナミックメソッド
C.2 すべてのアーティファクトに共通のダイナミックメソッド
C.3 ドメインクラスのダイナミックメソッド
C.4 コントローラのダイナミックメソッド
C.5 サービスのダイナミックメソッド
ダイナミックメソッド一覧
D その他の技術情報~制約記述、Hibernateクライテリアビルダ、ダイナミックファインダ、組み込みプラグイン
D.1 制約記述(1)~ドメインクラスの制約
D.2 制約記述(2)~スカッフォールディングでの利用
D.3 制約記述(3)~スキーマ生成での利用
D.4 Hibernateクライテリアビルダ
D.5 ダイナミックファインダ
D.6 組み込みプラグイン
COLUMN
Grailsコミュニティ
Groovyの歴史
GroovyとGrails
Java SE 5の取り込みと進化
URLマッピング
デフォルトアクション
REST
Web Flowを使わない画面遷移
interactiveモード
BDD
デバッグ
パッケージのLogger設定
プラグイン開発は大変?
実はあなどれないシンプルなプラグイン
プラグインロードの内部処理
イベント処理のサンプル
アーティファクトのスペル
公式プラグインのコミッターへの道
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
1刷 | 015 リスト1.2の2行目 |
未 | 未 |
|
2011.07.12 | ||||
1刷 | 016 リスト1.3の2行目 |
未 | 未 |
|
2011.07.12 |