Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Letsgo sendai nobusue_20110528

3,440 views

Published on

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

Published in: Technology, Education
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2F4cEJi ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Letsgo sendai nobusue_20110528

  1. 1. 1<br />便利すぎる!?<br />ライブラリ編<br />
  2. 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. 3. 今年も来たぜ、仙台へ<br />3<br />竹田武田ソフトさん、<br />すいませんでした・・・<br />http://www.slideshare.net/nobusue/gworkshop-sendai-20100424<br />
  4. 4. Groovyの便利な下僕たち<br />4<br />Groovy API<br />Groovy JDK<br />(GDK)<br />XML / JSON<br />ビルダー<br />GSQL<br />
  5. 5. びるだー?<br />5<br />
  6. 6. MarkupBuilder<br />6<br />def builder = new groovy.xml.MarkupBuilder()<br />builder.注文(伝票番号:'123456') {<br />注文明細{<br />商品(コード:'8823', 単価:100, 数量:2)<br />商品(コード:'0123', 単価:200, 数量:1)<br />}<br />出荷(日付:'2011-05-28')<br />}<br />←実はクロージャ<br /><注文 伝票番号='123456'><br /> <注文明細><br /> <商品 コード='8823' 単価='100' 数量='2' /><br /> <商品 コード='0123' 単価='200' 数量='1' /><br /> </注文明細><br /> <出荷 日付='2011-05-28' /><br /></注文><br />
  7. 7. JsonBuilder (Groovy 1.8~)<br />7<br />{<br />"注文": {<br />"伝票番号": "123456",<br />"注文明細": [<br />{<br />"コード": "8823",<br />"単価": 100,<br />"数量": 2<br />},<br />{<br />"コード": "0123",<br />"単価": 200,<br />"数量": 1<br />}<br />],<br />"出荷": {<br />"日付": "2011-05-28"<br />}<br />}<br />}<br />def builder = new groovy.json.JsonBuilder()<br />builder.注文(伝票番号:'123456') {<br />注文明細(<br /> [コード:'8823', 単価:100, 数量:2],<br /> [コード:'0123', 単価:200, 数量:1]<br /> )<br />出荷(日付:'2011-05-28')<br />}<br />printlngroovy.json.JsonOutput.prettyPrint(<br />builder.toString()<br />)<br />←実はメソッド呼出し<br />
  8. 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. 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. 10. GDKのメソッド91個<br />犠牲者: java.lang.Stringさん<br />10<br />JDKのメソッド<br />65個<br />※ Java SE 6とGroovy-1.8.0で確認<br />※ シグニチャが異なるものは別メソッドとしてカウント<br />
  11. 11. 貴方は本当にString???<br />11<br />def x = "123.45"<br />assert x.isInteger() == false<br />assert x.isDouble() == true<br />assert x.isNumber() == true<br />def s = "groovy"<br />assert "${s.padLeft(10,'-')}"== "----groovy"<br />assert "${s.center(10,'-')}" == "--groovy--"<br />assert "${s.padRight(10,'-')}" == "groovy----"<br />assert 'hello'.tr('aiueo','AIUEO') == 'hEllO'<br />assert 'あいうえお'.tr('いえ','ie') == 'あiうeお'<br />println"ifconfig -a".execute().text //Unix<br />println"ipconfig".execute().text //Windows<br />
  12. 12. 他にもいろいろ追加されてます<br />12<br />詳しくは http://groovy.codehaus.org/groovy-jdk/ を見てね!<br />
  13. 13. Groovyでのびのび~<br />13<br />

×