29
のちょっとイイ話。 全世界400万人のJava技術者が、 Grailsと⽢く切ない恋に落ちた︕ 〜 須藤悠 http://grails.org/ http://grails.jp/

2013.11.16 shibuya java #4 Grails Goodness

  • Upload
    yu-sudo

  • View
    1.602

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 2013.11.16 shibuya java #4 Grails Goodness

のちょっとイイ話。〜 全世界400万人のJava技術者が、

Grailsと⽢く切ない恋に落ちた︕ 〜

須藤 悠

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

Page 2: 2013.11.16 shibuya java #4 Grails Goodness

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

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

� JGGUG運営委員⻑� ピザ大好き

Page 3: 2013.11.16 shibuya java #4 Grails Goodness

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

Page 4: 2013.11.16 shibuya java #4 Grails Goodness

その他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/

Page 5: 2013.11.16 shibuya java #4 Grails Goodness

Grails(ぐれいるず)とは�Webアプリケーションフレームワーク� OSS/fullstack/out of box

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

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

�Pivotal/SpringSourceが開発

Page 6: 2013.11.16 shibuya java #4 Grails Goodness

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

�Groovyで書く�Spockでテストする

Page 7: 2013.11.16 shibuya java #4 Grails Goodness

from Unhindered by Talent (CC-BY-SA) http://www.fotopedia.com/items/flickr-250890495

Javaの世界と地続き

Page 8: 2013.11.16 shibuya java #4 Grails Goodness

Grailsの中身(※一部)

�Spring Framework

�Hibernate - O/R Mapper

�Apache Tomcat Embed 7

�Apache Ivy - Dependency Manager

�H2 Database

Page 9: 2013.11.16 shibuya java #4 Grails Goodness

対応Servletコンテナ�Tomcat 6↑�GlassFish 2↑�Resin 3↑�Oracle WebLogic 9↑� IBM WebSphere 6.1↑(※条件あり)

http://grails.jp/doc/latest/guide/gettingStarted.html#supportedJavaEEContainers

� Jboss 5↑� Jetty 6↑� tc Server

Page 10: 2013.11.16 shibuya java #4 Grails Goodness

性能�Web Framework Benchmarks

� http://www.techempower.com/benchmarks/

� Round 6� Multiple queries� FullStack or Platform� Full or Micro ORM

�で⾒てみると…︖(※一例です)

Page 11: 2013.11.16 shibuya java #4 Grails Goodness

性能�Web Framework Benchmarks

� http://www.techempower.com/benchmarks/

Scala/Lift, Play!PHP/Phalcon, Cake, LithiumNode.jsPython/DjangoRuby/Rails

…より速い︕

Page 12: 2013.11.16 shibuya java #4 Grails Goodness

� Javaライブラリを簡単に利用できる�運用ノウハウがそのまま活かせる� Grailsアプリはただのwar� TomcatのSession Replicationとか� Servletコンテナの性能チューニングとか

�Spring/Hibernateの経験が活きる�学習コストが抑えられる

Java資産の活用

Page 13: 2013.11.16 shibuya java #4 Grails Goodness

http://groovy.codehaus.org/

Groovyで書く

Page 14: 2013.11.16 shibuya java #4 Grails Goodness

from https://speakerdeck.com/glaforge/what-makes-groovy-groovy-jax-london-2013

Page 15: 2013.11.16 shibuya java #4 Grails Goodness

Java開発者の人生をシンプルにする︕

Page 16: 2013.11.16 shibuya java #4 Grails Goodness

Groovyのちょっとイイところ�クロージャ�メタプログラミング/MOP�AST変換�Groovy-JDK� メソッド定義による演算子オーバーロード� コレクションの拡張 …etc

�チェック例外のチェック省略 …などなど

Page 17: 2013.11.16 shibuya java #4 Grails Goodness

Groovyのちょっとイイところ�詳しく知りたいなら�書籍「プログラミングGROOVY」が良書� 技術評論社

� ISBN: 978-4-7741-4727-7

� http://gihyo.jp/book/2011/978-4-7741-4727-7

Page 18: 2013.11.16 shibuya java #4 Grails Goodness

Spockでテストする

テスティングフレームワーク

Spockhttps://code.google.com/p/spock/

Page 19: 2013.11.16 shibuya java #4 Grails Goodness

from https://speakerdeck.com/glaforge/what-makes-groovy-groovy-jax-london-2013

Page 20: 2013.11.16 shibuya java #4 Grails Goodness

Spockでテストする�詳しくはJGGUGのワークショップ資料をご覧ください︕� G*ワークショップZ - Spockハンズオン� https://github.com/yamkazu/spock-workshop

�@yamkazuさん作(Grailsドキュメント和訳チーム)

� JavaシステムのテストをSpockでおこなうこともできます︕

Page 21: 2013.11.16 shibuya java #4 Grails Goodness

Grailsにまつわるちょっとイイ機能�GVM:Groovy enVironment Manager

�Grails wrapper�Grails consoleコマンド�dbconsole�プラグイン機構�Serviceとトランザクション

Page 22: 2013.11.16 shibuya java #4 Grails Goodness

Grailsのちょっとデメリットいところ�Checkstyle/Findbugsが使えない� CodeNarc を使うことになる

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

�メモリフットプリントが大きい� PaaS利用では大きなデメリット

Page 23: 2013.11.16 shibuya java #4 Grails Goodness

Q&A�ログ出⼒は︖� log4jを内蔵� http://grails.jp/doc/latest/guide/conf.html#log

ging

� logbackを利用するプラグインもあるよ� http://grails.org/plugin/logback

Page 24: 2013.11.16 shibuya java #4 Grails Goodness

Q&A�スタックトレースどんな感じ︖� こ� ん� な�感

� じ

Page 25: 2013.11.16 shibuya java #4 Grails Goodness

Q&A�マルチデータソースにしたいんだけど� デフォルトで対応� http://grails.jp/doc/latest/guide/conf.html#mul

tipleDatasources

�NoSQL使いたいんだけど� プラグインで対応� MongoDB, Redis, Hadoop HBase, Neo4j,

Cassandra, CouchDB, DynamoDB, Riak…

Page 26: 2013.11.16 shibuya java #4 Grails Goodness

Q&A�Hibernateを使いたくないんだけど/SQLを生で書きたいんだけど� HibernateのネイティブSQL APIを使う� sessionFactory.currentSession から session を取得

� Groovy SQLを使う� dataSource から直接DBにアクセス

� 2次キャッシュのOFFと、必要に応じて1次キャッシュのクリア

� MyBATISプラグインなどを使う

Page 27: 2013.11.16 shibuya java #4 Grails Goodness

Q&A�Grailsプラグインの一覧どこかにない︖� list-pluginsコマンドでどうぞ� http://grails.org/doc/latest/ref/Command%20Li

ne/list-plugins.html

Page 28: 2013.11.16 shibuya java #4 Grails Goodness

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

Page 29: 2013.11.16 shibuya java #4 Grails Goodness

ご清聴ありがとうございました︕Copyright(c) 2013 NTT Software Corporation All Rights Reserved.

本資料に記載されているロゴ、会社名、製品名等は、

各社および商標権者の登録商標または商標です。

“Oracle”と”Java”は、Oracle Corporation及びその子会社、

関連会社の米国及びその他の国における登録商標です。