レッツゴーデベロッパー2011「プログラミングgroovy〜g*エコシステム編」

28
Java G* エコシステム編

Upload: yasuharu-nakano

Post on 15-Jan-2015

2.858 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Java

G*エコシステム編

Page 2: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Who am I?✓氏名:中野 靖治(a.k.a. nobeans)✓所属:NTTソフトウェア株式会社✓ブログ:豆無日記 http://d.hatena.ne.jp/nobeans/

✓String#tr()をコントリビュートしました✓GroovyServ作ってます

Page 3: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

$ time groovy -e 'println "Hello, world!";'Hello, world!

real 0m1.806suser 0m1.321ssys 0m0.171s

$ time groovyclient -e 'println "Hello, world!";'Hello, world!

real 0m0.029suser 0m0.001ssys 0m0.002s

Page 4: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

$ time groovyserverGROOVY: /Users/ynak/Developer/runtime/groovy/bin/groovyGROOVYSERV_HOME: /usr/local/Cellar/groovyserv/0.5/libexecstarting....groovyserver 71209(1961) is successfully started

real 0m5.038suser 0m0.015ssys 0m0.048s

Page 5: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

http://www.flickr.com/photos/turyddu/2682923190/

“見よ、あれが

Groovyスクリプト使

い達の希望である”

Page 7: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
Page 8: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Java

宣伝おわり

Page 9: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

G*エコシステム

Page 10: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

エコシステム||

生態系http://www.flickr.com/photos/philippeguillaume/4027168508

Page 11: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

“ある場を共有し、関係を持つ種々の構成要素がその活動を維持して行くための仕組み”http://www.venturenow.jp/column/ogawa/20100721008569.html

Page 12: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

もちつもたれつ

Page 13: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Spock

Page 14: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Spock

もちつ

Page 15: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Spock

もたれつ

Page 16: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Spock実用的なライブラリ・ツール群も全部ひっくるめてGroovyです

Page 17: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

残り時間で、Groovyエコシステムの主要プロダクトをライトニング紹介します

Page 18: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

Spock

Page 19: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓フルスタックのWebアプリケーションフレームワーク✓Groovy版、Ruby on Rails✓現在はSpringSource社のラインナップの1つ✓SpringMVC, SpringFramework, Hibernateなどのデファクトなプロダクトを基盤として採用

✓面倒な設定は「規約&DSL」でまろやかにラッピング✓プラグインが便利!✓認証機能?→それ、Spring Securityプラグインで(ry✓CSVエクスポート?→それ、Exportプラグインで(ry✓詳しくはJGGUG名古屋支部長の@tyamaさんに!

Page 20: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓SwingベースのRIAフレームワーク✓GroovyのSwingBuilderをフル活用✓Grailsのアーキテクチャをそのまま踏襲✓Jar, Applet, JWSなどにパッケージング可能✓将来的にJavaFX2.0への対応も予定✓詳しくはJGGUG関西支部長の@kiy0takaさんに!

Page 21: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓並行プログラミングのためのライブラリ✓Groovy1.8から標準でバンドルされた!✓並行処理、非同期処理、分散処理のための直感的で安全な方法を提供✓コレクションの並行処理(Map/Reduce風)✓Erlang/Scalaのアクタープログラミングモデル✓Clojureのエージェント✓6/17(金)のg*workshopでふもさん(@fumokmm)が発表予定です!

Page 22: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓ポストMavenの総合的なプロジェクト管理ツール✓Mavenはかなり意識してます✓ディレクトリ構成はMaven方式を踏襲✓もちろん、依存ライブラリも管理できる(Ivy利用)✓各種プラグインによる簡単機能追加(宣言を追加するだけ)✓Groovy, Maven, Eclipse, OSGi, Scala, etc.✓全面的にGroovyベースのDSLを採用✓柔軟なマルチプロジェクト構成が実現できる✓あのHibernateもGradleに移行した!✓詳しくはドキュメント日本語訳リーダ@literaliceさんに!

Page 23: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓Google App Engine用ツールキット✓GroovyのProject LeadであるGuillaume Laforge氏が開発

✓GAEのAPIをGroovy風にするための薄いラッパー✓GroovyライクなDSLや記法をフル活用✓ツイッターBot程度なら超楽々✓詳しくはJGGUG運営委員長 兼 執筆リーダの@kazuchikaさんに!

Page 24: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

✓BDD(ビヘイビア駆動開発)フレームワーク✓Power Assertの出身地✓AST変換を活用して、わかりやすいアサーションメッセージを表示できる

✓Groovy1.7で本家に取り込まれている✓緩募:日本Groovy界のミスタースポック

Spock

Page 25: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

// 「0~9に含まれてる偶数の個数は4個だよね?」(違def list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]assert list.findAll{ it % 2 == 0 }.size() == 4

(参考)Power Assert

                 !!!!!!!!!!!!!!!!!!!!!!!!!!

Caught:  Assertion  failed:  

assert  list.findAll{  it  %  2  ==  0  }.size()  ==  4              |        |                                            |            |              |        [0,  2,  4,  6,  8]                5            false              [0,  1,  2,  3,  4,  5,  6,  7,  8,  9]

Page 26: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

早すぎる?よくわからない?人に振りすぎ?サンプルコードがない?

Page 27: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

6章

Page 28: レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」

!"#"$%&'"()*+&',,-.%/*0'%&',1#

! " # " $ % & '

vol.2 C o n t e n t sGrails 1.4.0 M1 リリース 緊急企画

検証 ! Grails 1.4.0 の世界 …………………… 4!"#$"%&'(

Griffon 不定期便~第 3回 バインディング編~ ………………………10!"#$"%&')

CodeNarc を利用してGROOVY のコード品質を上げる~第 2回 開発ツールと連携~ ………………………14!"#$"%&'*

もし新人女子 Java プログラマが 『Groovy イン・アクション』を読んだら~第1章 もかは『Groovy イン・アクション』と出会った~ … 18!"#$"%&'+

Grails Plugin 探訪~第 3回 MongoDB GORM プラグイン~ …………24,-./#012$/-

リリース情報………………………………………28JGGUG4コマ漫画「ぐるーびーたん」第 2話 ……29

http://grails.jp/g_mag_jp/

いますぐダウンロード