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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Letsgo sendai nobusue_20110528

2,582
views

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,582
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
    便利すぎる!?
    ライブラリ編
  • 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
  • 5. びるだー?
    5
  • 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/ を見てね!
  • 13. Groovyでのびのび~
    13