SlideShare uma empresa Scribd logo
1 de 13
1 便利すぎる!? ライブラリ編
自己紹介 須江 信洋(すえ のぶひろ)/ @nobusue 1970年生まれ、介護保険エイジです 29歳で世に出てから、ずっとJavaEE関連の仕事です エンタープライズはオワコンじゃないです! G*との関わり Groovyを組み込んだ製品(WebSphere sMash)を売ってます JGGUGサポート・メンバー 「Groovy イン・アクション」翻訳メンバーの一味 Gaelykで作ったBot飼ってます(@hatena_groovy) 2
今年も来たぜ、仙台へ 3 竹田武田ソフトさん、 すいませんでした・・・ http://www.slideshare.net/nobusue/gworkshop-sendai-20100424
Groovyの便利な下僕たち 4 Groovy API Groovy JDK (GDK) XML / JSON ビルダー GSQL
びるだー? 5
MarkupBuilder 6 def builder = new groovy.xml.MarkupBuilder() builder.注文(伝票番号:'123456') { 注文明細{ 商品(コード:'8823', 単価:100, 数量:2) 商品(コード:'0123', 単価:200, 数量:1) } 出荷(日付:'2011-05-28') } ←実はクロージャ <注文 伝票番号='123456'>   <注文明細>     <商品 コード='8823' 単価='100' 数量='2' />     <商品 コード='0123' 単価='200' 数量='1' />   </注文明細>   <出荷 日付='2011-05-28' /> </注文>
JsonBuilder (Groovy 1.8~) 7 { "注文": { "伝票番号": "123456", "注文明細": [ { "コード": "8823", "単価": 100, "数量": 2 }, { "コード": "0123", "単価": 200, "数量": 1 } ], "出荷": { "日付": "2011-05-28" } } } def builder = new groovy.json.JsonBuilder() builder.注文(伝票番号:'123456') { 注文明細(         [コード:'8823', 単価:100, 数量:2],         [コード:'0123', 単価:200, 数量:1]     ) 出荷(日付:'2011-05-28') } printlngroovy.json.JsonOutput.prettyPrint( builder.toString() ) ←実はメソッド呼出し
びるだー! Builder 複雑な構造物を見通し良く組み立てるためのしくみ GoFのBuilderパターンに由来 他にも便利なBuilderがいろいろ AntBuilder SwingBuilder CliBuilder Groovyは汎用的なBuilderフレームワークを提供 オレオレBuilderが簡単に作れる。レッツトライ! 詳しくは http://groovy.codehaus.org/api/index.html を見てね 8
Groovy JDK(GDK) JDKのクラスに、勝手にAPIを追加して強化ッ! 9 JDK GDK ※『CYBERDYNE』、『ROBOT SUIT』、『ロボットスーツ』、『ROBOT SUIT HAL』、『ロボットスーツHAL』、『HAL』、『Hybrid Assistive Limb』は、CYBERDYNE(株)の登録商標です。
GDKのメソッド91個 犠牲者: java.lang.Stringさん 10 JDKのメソッド 65個 ※ Java SE 6とGroovy-1.8.0で確認 ※ シグニチャが異なるものは別メソッドとしてカウント
貴方は本当にString??? 11 def x = "123.45" assert x.isInteger() == false assert x.isDouble() == true assert x.isNumber() == true def s = "groovy" assert "${s.padLeft(10,'-')}"== "----groovy" assert "${s.center(10,'-')}" == "--groovy--" assert "${s.padRight(10,'-')}" == "groovy----" assert 'hello'.tr('aiueo','AIUEO') == 'hEllO' assert 'あいうえお'.tr('いえ','ie') == 'あiうeお' println"ifconfig -a".execute().text //Unix println"ipconfig".execute().text    //Windows
他にもいろいろ追加されてます 12 詳しくは http://groovy.codehaus.org/groovy-jdk/ を見てね!
Groovyでのびのび~ 13

Mais conteúdo relacionado

Mais procurados

やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門Tomohiko Himura
 
マルチブラウザやりました (DMM.Study Night)
マルチブラウザやりました (DMM.Study Night)マルチブラウザやりました (DMM.Study Night)
マルチブラウザやりました (DMM.Study Night)Takafumi Sugie
 
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)星影 月夜
 
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜すごいぞVuetify!! 〜ポートフォリオを作ってみた〜
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜SHOYAYAMAMOTO
 
RubyGemsで公開されているライブラリをモンキーパッチした話
RubyGemsで公開されているライブラリをモンキーパッチした話RubyGemsで公開されているライブラリをモンキーパッチした話
RubyGemsで公開されているライブラリをモンキーパッチした話SHOYAYAMAMOTO
 
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話Shinobu Okano
 
2ヶ月前にgitを始めた私からこれから始める皆さんへ
2ヶ月前にgitを始めた私からこれから始める皆さんへ2ヶ月前にgitを始めた私からこれから始める皆さんへ
2ヶ月前にgitを始めた私からこれから始める皆さんへAyana Yokota
 
ゲームプランナー向けの乱数の話
ゲームプランナー向けの乱数の話ゲームプランナー向けの乱数の話
ゲームプランナー向けの乱数の話himojii3
 
View CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するView CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するAsa Morino
 
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようMasataka Kono
 
Xamarin.iOSでspritekit
Xamarin.iOSでspritekitXamarin.iOSでspritekit
Xamarin.iOSでspritekit史也 久米
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 

Mais procurados (13)

やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
shinobu.apk #1
shinobu.apk #1shinobu.apk #1
shinobu.apk #1
 
マルチブラウザやりました (DMM.Study Night)
マルチブラウザやりました (DMM.Study Night)マルチブラウザやりました (DMM.Study Night)
マルチブラウザやりました (DMM.Study Night)
 
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)
Firefox OSがモテないのは どう考えてもお前らが悪い!(FxOS Gecko勉強会LT版)
 
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜すごいぞVuetify!! 〜ポートフォリオを作ってみた〜
すごいぞVuetify!! 〜ポートフォリオを作ってみた〜
 
RubyGemsで公開されているライブラリをモンキーパッチした話
RubyGemsで公開されているライブラリをモンキーパッチした話RubyGemsで公開されているライブラリをモンキーパッチした話
RubyGemsで公開されているライブラリをモンキーパッチした話
 
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話
 
2ヶ月前にgitを始めた私からこれから始める皆さんへ
2ヶ月前にgitを始めた私からこれから始める皆さんへ2ヶ月前にgitを始めた私からこれから始める皆さんへ
2ヶ月前にgitを始めた私からこれから始める皆さんへ
 
ゲームプランナー向けの乱数の話
ゲームプランナー向けの乱数の話ゲームプランナー向けの乱数の話
ゲームプランナー向けの乱数の話
 
View CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するView CustomizeからREST APIを使用する
View CustomizeからREST APIを使用する
 
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
 
Xamarin.iOSでspritekit
Xamarin.iOSでspritekitXamarin.iOSでspritekit
Xamarin.iOSでspritekit
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 

Destaque

Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEEasy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEUehara Junji
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Uehara Junji
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」Yasuharu Nakano
 
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編Kazuchika Sekiya
 
スプリント計画ミーティング
スプリント計画ミーティングスプリント計画ミーティング
スプリント計画ミーティングMiho Nagase
 
Groovy 1.8の新機能について
Groovy 1.8の新機能についてGroovy 1.8の新機能について
Groovy 1.8の新機能についてUehara Junji
 

Destaque (8)

Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEEasy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVE
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
 
GroovyConsole
GroovyConsoleGroovyConsole
GroovyConsole
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
 
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編
 
Grails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLTGrails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLT
 
スプリント計画ミーティング
スプリント計画ミーティングスプリント計画ミーティング
スプリント計画ミーティング
 
Groovy 1.8の新機能について
Groovy 1.8の新機能についてGroovy 1.8の新機能について
Groovy 1.8の新機能について
 

Semelhante a Letsgo sendai nobusue_20110528

G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0Nobuhiro Sue
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionKazuchika Sekiya
 
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)OSgeo Japan
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)orange clover
 
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiDevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiNobuhiro Sue
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_GroovyNobuhiro Sue
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~Seiichiro Ishida
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryNobuhiro Sue
 
Ggj2015での開発話
Ggj2015での開発話Ggj2015での開発話
Ggj2015での開発話勝成 鈴江
 

Semelhante a Letsgo sendai nobusue_20110528 (12)

G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
 
G* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - IntroductionG* Workshop in Fukuoka - Introduction
G* Workshop in Fukuoka - Introduction
 
201802 WordBench Nagoya
201802 WordBench Nagoya 201802 WordBench Nagoya
201802 WordBench Nagoya
 
JGGUG Community LT 2016
JGGUG Community LT 2016JGGUG Community LT 2016
JGGUG Community LT 2016
 
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
 
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiDevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGi
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
Ggj2015での開発話
Ggj2015での開発話Ggj2015での開発話
Ggj2015での開発話
 
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LTDevsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
 

Mais de Nobuhiro Sue

Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on GuideNobuhiro Sue
 
Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on GuideNobuhiro Sue
 
Knative CloudEvents
Knative CloudEventsKnative CloudEvents
Knative CloudEventsNobuhiro Sue
 
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueJTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueNobuhiro Sue
 
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711Nobuhiro Sue
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpNobuhiro Sue
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservicesNobuhiro Sue
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_introGws 20141024 gradle_intro
Gws 20141024 gradle_introNobuhiro Sue
 
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_introJjug 20140430 gradle_intro
Jjug 20140430 gradle_introNobuhiro Sue
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovyNobuhiro Sue
 
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Nobuhiro Sue
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSNobuhiro Sue
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradleNobuhiro Sue
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427Nobuhiro Sue
 
Html5勉強会 20120423
Html5勉強会 20120423Html5勉強会 20120423
Html5勉強会 20120423Nobuhiro Sue
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222Nobuhiro Sue
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 

Mais de Nobuhiro Sue (20)

Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Knative CloudEvents
Knative CloudEventsKnative CloudEvents
Knative CloudEvents
 
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueJTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
 
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservices
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_introGws 20141024 gradle_intro
Gws 20141024 gradle_intro
 
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_introJjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovy
 
Gws 20140117 lt
Gws 20140117 ltGws 20140117 lt
Gws 20140117 lt
 
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
 
Html5勉強会 20120423
Html5勉強会 20120423Html5勉強会 20120423
Html5勉強会 20120423
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 

Último

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Último (8)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Letsgo sendai nobusue_20110528

  • 2. 自己紹介 須江 信洋(すえ のぶひろ)/ @nobusue 1970年生まれ、介護保険エイジです 29歳で世に出てから、ずっとJavaEE関連の仕事です エンタープライズはオワコンじゃないです! G*との関わり Groovyを組み込んだ製品(WebSphere sMash)を売ってます JGGUGサポート・メンバー 「Groovy イン・アクション」翻訳メンバーの一味 Gaelykで作ったBot飼ってます(@hatena_groovy) 2
  • 3. 今年も来たぜ、仙台へ 3 竹田武田ソフトさん、 すいませんでした・・・ http://www.slideshare.net/nobusue/gworkshop-sendai-20100424
  • 4. Groovyの便利な下僕たち 4 Groovy API Groovy JDK (GDK) XML / JSON ビルダー GSQL
  • 6. MarkupBuilder 6 def builder = new groovy.xml.MarkupBuilder() builder.注文(伝票番号:'123456') { 注文明細{ 商品(コード:'8823', 単価:100, 数量:2) 商品(コード:'0123', 単価:200, 数量:1) } 出荷(日付:'2011-05-28') } ←実はクロージャ <注文 伝票番号='123456'> <注文明細> <商品 コード='8823' 単価='100' 数量='2' /> <商品 コード='0123' 単価='200' 数量='1' /> </注文明細> <出荷 日付='2011-05-28' /> </注文>
  • 7. JsonBuilder (Groovy 1.8~) 7 { "注文": { "伝票番号": "123456", "注文明細": [ { "コード": "8823", "単価": 100, "数量": 2 }, { "コード": "0123", "単価": 200, "数量": 1 } ], "出荷": { "日付": "2011-05-28" } } } def builder = new groovy.json.JsonBuilder() builder.注文(伝票番号:'123456') { 注文明細( [コード:'8823', 単価:100, 数量:2], [コード:'0123', 単価:200, 数量:1] ) 出荷(日付:'2011-05-28') } printlngroovy.json.JsonOutput.prettyPrint( builder.toString() ) ←実はメソッド呼出し
  • 8. びるだー! Builder 複雑な構造物を見通し良く組み立てるためのしくみ GoFのBuilderパターンに由来 他にも便利なBuilderがいろいろ AntBuilder SwingBuilder CliBuilder Groovyは汎用的なBuilderフレームワークを提供 オレオレBuilderが簡単に作れる。レッツトライ! 詳しくは http://groovy.codehaus.org/api/index.html を見てね 8
  • 9. Groovy JDK(GDK) JDKのクラスに、勝手にAPIを追加して強化ッ! 9 JDK GDK ※『CYBERDYNE』、『ROBOT SUIT』、『ロボットスーツ』、『ROBOT SUIT HAL』、『ロボットスーツHAL』、『HAL』、『Hybrid Assistive Limb』は、CYBERDYNE(株)の登録商標です。
  • 10. GDKのメソッド91個 犠牲者: java.lang.Stringさん 10 JDKのメソッド 65個 ※ Java SE 6とGroovy-1.8.0で確認 ※ シグニチャが異なるものは別メソッドとしてカウント
  • 11. 貴方は本当にString??? 11 def x = "123.45" assert x.isInteger() == false assert x.isDouble() == true assert x.isNumber() == true def s = "groovy" assert "${s.padLeft(10,'-')}"== "----groovy" assert "${s.center(10,'-')}" == "--groovy--" assert "${s.padRight(10,'-')}" == "groovy----" assert 'hello'.tr('aiueo','AIUEO') == 'hEllO' assert 'あいうえお'.tr('いえ','ie') == 'あiうeお' println"ifconfig -a".execute().text //Unix println"ipconfig".execute().text //Windows
  • 12. 他にもいろいろ追加されてます 12 詳しくは http://groovy.codehaus.org/groovy-jdk/ を見てね!