http://grails.org/
http://grails.jp/

のちょっとイイ話。
〜 全世界400万人のJava技術者が、
Grailsと⽢く切ない恋に落ちた︕ 〜

須藤 悠
発表者について
須藤 悠 (SUDO Yu)
NTTソフトウェア株式会社 Grails推進室
“Grails Advocate”
Grailsを用いたファイルアップローダ作成
http://www.ntts.co.jp/publish/column/tec/java_02/

社内研修講師(CSS/jQuery/Grails/Groovy)

JGGUG運営委員⻑
ピザ大好き
JGGUGについて
日本Grails/Groovyユーザグループ
G*ワークショップZ
毎月第3⾦曜⽇、Groovyエコシステム関連のハンズオン
http://jggug.doorkeeper.jp/events/

G*Magazine
GroovyエコシステムのWeb情報誌
http://grails.jp/g_mag_jp/

JGGUG公式Twitterアカウント
@jggug https://twitter.com/jggug
その他G*関連について
G* Advent Calendar 2013
http://qiita.com/advent-calendar/2013/gastah

Groovyist/G*のあれやこれや
http://orangeclover.hatenablog.com/entry/2013
/11/02/223238

Yokohama.groovy
Groovyエコシステムの「もくもく会」
http://connpass.com/series/253/
Grails(ぐれいるず)とは
Webアプリケーションフレームワーク
OSS/fullstack/out of box

Ruby on Railsと共通の概念
CoC/DRY/MVC/Scaffold …etc

XML設定不要
YAML…ではなくGroovyのコード(DSL)で

Pivotal/SpringSourceが開発
Grailsのちょっとイイところ
Javaの世界と地続き
Grailsの中身
対応Servletコンテナ
性能
Java資産の活用

Groovyで書く
Spockでテストする
Javaの世界と地続き

from Unhindered by Talent (CC-BY-SA) http://www.fotopedia.com/items/flickr-250890495
Grailsの中身(※一部)
Spring Framework
Hibernate - O/R Mapper
Apache Tomcat Embed 7
Apache Ivy - Dependency Manager
H2 Database
対応Servletコンテナ
Jboss 5↑
Tomcat 6↑
Jetty 6↑
GlassFish 2↑
tc Server
Resin 3↑
Oracle WebLogic 9↑
IBM WebSphere 6.1↑(※条件あり)
http://grails.jp/doc/latest/guide/gettingStarted.html
#supportedJavaEEContainers
性能
Web Framework Benchmarks
http://www.techempower.com/benchmarks/

Round 6
Multiple queries
FullStack or Platform
Full or Micro ORM

で⾒てみると…︖(※一例です)
性能
Web Framework Benchmarks
http://www.techempower.com/benchmarks/

Scala/Lift, Play!
PHP/Phalcon, Cake, Lithium
Node.js
Python/Django
Ruby/Rails
…より速い︕
Java資産の活用
Javaライブラリを簡単に利用できる
運用ノウハウがそのまま活かせる
Grailsアプリはただのwar
TomcatのSession Replicationとか
Servletコンテナの性能チューニングとか

Spring/Hibernateの経験が活きる
学習コストが抑えられる
Groovyで書く

http://groovy.codehaus.org/
from https://speakerdeck.com/glaforge/what-makes-groovy-groovy-jax-london-2013
Java開発者の
人生を
シンプルにする︕
Groovyのちょっとイイところ
クロージャ
メタプログラミング/MOP
AST変換
Groovy-JDK
メソッド定義による演算子オーバーロード
コレクションの拡張
…etc

チェック例外のチェック省略 …などなど
Groovyのちょっとイイところ
詳しく知りたいなら
書籍「プログラミングGROOVY」が良書
技術評論社
ISBN: 978-4-7741-4727-7
http://gihyo.jp/book/2011/978-4-7741-4727-7
Spockでテストする
テスティングフレームワーク

Spock
https://code.google.com/p/spock/
from https://speakerdeck.com/glaforge/what-makes-groovy-groovy-jax-london-2013
Spockでテストする
詳しくはJGGUGのワークショップ資料を
ご覧ください︕
G*ワークショップZ - Spockハンズオン
https://github.com/yamkazu/spock-workshop

@yamkazuさん作(Grailsドキュメント和訳チーム)
JavaシステムのテストをSpockでおこなうことも
できます︕
Grailsにまつわるちょっとイイ機能
GVM:Groovy enVironment Manager
Grails wrapper
Grails consoleコマンド
dbconsole
プラグイン機構
Serviceとトランザクション
Grailsのちょっとデメリットいところ
Checkstyle/Findbugsが使えない
CodeNarc を使うことになる

パートナー探し
「Grailsで︕」って言うと「経験無いんで…」
SpringかHibernateの経験があれば︕

メモリフットプリントが大きい
PaaS利用では大きなデメリット
Q&A
ログ出⼒は︖
log4jを内蔵
http://grails.jp/doc/latest/guide/conf.html#log
ging

logbackを利用するプラグインもあるよ
http://grails.org/plugin/logback
Q&A
スタックトレースどんな感じ︖
こ
ん
な
感
じ
Q&A
マルチデータソースにしたいんだけど
デフォルトで対応
http://grails.jp/doc/latest/guide/conf.html#mul
tipleDatasources

NoSQL使いたいんだけど
プラグインで対応
MongoDB, Redis, Hadoop HBase, Neo4j,
Cassandra, CouchDB, DynamoDB, Riak…
Q&A
Hibernateを使いたくないんだけど
/SQLを生で書きたいんだけど
HibernateのネイティブSQL APIを使う
sessionFactory.currentSession から session を取得

Groovy SQLを使う
dataSource から直接DBにアクセス
2次キャッシュのOFFと、必要に応じて1次キャッシュのクリア

MyBATISプラグインなどを使う
Q&A
Grailsプラグインの一覧どこかにない︖
list-pluginsコマンドでどうぞ
http://grails.org/doc/latest/ref/Command%20Li
ne/list-plugins.html
Q&A
Grailsの書籍は︖
Grails 2.x系に対応した日本語の書籍は無い
本家のドキュメントが親切でボリューム大︕
http://grails.org/doc/latest/
http://grails.jp/doc/latest/

Grails 2.x系に対応した洋書なら
The Definitive Guide to Grails 2
Programming Grails
Grails in Action, Second Edition
ご清聴ありがとうございました︕
Copyright(c) 2013 NTT Software Corporation All Rights Reserved.
本資料に記載されているロゴ、会社名、製品名等は、
各社および商標権者の登録商標または商標です。
“Oracle”と”Java”は、Oracle Corporation及びその子会社、
関連会社の米国及びその他の国における登録商標です。

2013.11.16 shibuya java #4 Grails Goodness