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

Letsgo sendai nobusue_20110528

on

  • 2,881 views

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

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

Statistics

Views

Total Views
2,881
Views on SlideShare
2,694
Embed Views
187

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 187

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

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Letsgo sendai nobusue_20110528 Letsgo sendai nobusue_20110528 Presentation Transcript

  • 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