SlideShare a Scribd company logo
1 of 29
Download to read offline
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及びその子会社、
関連会社の米国及びその他の国における登録商標です。

More Related Content

What's hot

Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
mihararyosuke
 

What's hot (20)

kintone Café 大阪 Vol.2 LT
kintone Café 大阪 Vol.2 LTkintone Café 大阪 Vol.2 LT
kintone Café 大阪 Vol.2 LT
 
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめGoogle Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
 
今から始めるApache Groovy
今から始めるApache Groovy今から始めるApache Groovy
今から始めるApache Groovy
 
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使うGAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
 
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料
 
いまさら触るAwt
いまさら触るAwtいまさら触るAwt
いまさら触るAwt
 
Annotate Windows API !
Annotate Windows API !Annotate Windows API !
Annotate Windows API !
 
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
 
GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
 
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
 
Google Gadgetsを看取る
Google Gadgetsを看取るGoogle Gadgetsを看取る
Google Gadgetsを看取る
 
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作るGoだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用
 
Rails Girls Tokyo 5th
Rails Girls Tokyo 5thRails Girls Tokyo 5th
Rails Girls Tokyo 5th
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
プロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれることプロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれること
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介
 
あなたもなれる!Linaroコミッターへの道
あなたもなれる!Linaroコミッターへの道あなたもなれる!Linaroコミッターへの道
あなたもなれる!Linaroコミッターへの道
 

Similar to 2013.11.16 shibuya java #4 Grails Goodness

さわったことありますか、 FOSS4G&QGIS?
さわったことありますか、 FOSS4G&QGIS?さわったことありますか、 FOSS4G&QGIS?
さわったことありますか、 FOSS4G&QGIS?
IWASAKI NOBUSUKE
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
 
Grailsでシステム構築
Grailsでシステム構築Grailsでシステム構築
Grailsでシステム構築
Megumi Sato
 
Gwt+objectifyでラクラクGAEアプリ開発
Gwt+objectifyでラクラクGAEアプリ開発Gwt+objectifyでラクラクGAEアプリ開発
Gwt+objectifyでラクラクGAEアプリ開発
Y OCHI
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
 

Similar to 2013.11.16 shibuya java #4 Grails Goodness (20)

Groovyの紹介20130323
Groovyの紹介20130323Groovyの紹介20130323
Groovyの紹介20130323
 
JGGUG Community LT 2016
JGGUG Community LT 2016JGGUG Community LT 2016
JGGUG Community LT 2016
 
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summerenterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
 
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
 
さわったことありますか、 FOSS4G&QGIS?
さわったことありますか、 FOSS4G&QGIS?さわったことありますか、 FOSS4G&QGIS?
さわったことありますか、 FOSS4G&QGIS?
 
GroovyでJSON2015
GroovyでJSON2015GroovyでJSON2015
GroovyでJSON2015
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
 
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LTDevsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
Azure media services はいいぞ!
Azure media services はいいぞ!Azure media services はいいぞ!
Azure media services はいいぞ!
 
Grailsでシステム構築
Grailsでシステム構築Grailsでシステム構築
Grailsでシステム構築
 
JsonSlurperの話
JsonSlurperの話JsonSlurperの話
JsonSlurperの話
 
Gwt+objectifyでラクラクGAEアプリ開発
Gwt+objectifyでラクラクGAEアプリ開発Gwt+objectifyでラクラクGAEアプリ開発
Gwt+objectifyでラクラクGAEアプリ開発
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Material Designなdrawerを実装したい
Material Designなdrawerを実装したいMaterial Designなdrawerを実装したい
Material Designなdrawerを実装したい
 
# groonga開発チームの紹介
# groonga開発チームの紹介# groonga開発チームの紹介
# groonga開発チームの紹介
 

2013.11.16 shibuya java #4 Grails Goodness