• Save
Letsgo sendai nobusue_20110528
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Letsgo sendai nobusue_20110528

  • 2,947 views
Uploaded on

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

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

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,947
On Slideshare
2,751
From Embeds
196
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 196

http://d.hatena.ne.jp 180
http://sns.labs.fujitsu.com 9
http://www.slideshare.net 3
https://twitter.com 2
http://tohoku-dev.jp 2

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