Your SlideShare is downloading. ×
0
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Letsgo sendai nobusue_20110528

2,646

Published on

2011/5/28 列つゴーデベロッパー2011@仙台 …

2011/5/28 列つゴーデベロッパー2011@仙台
プログラミングGroovy ライブラリ編

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,646
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×