• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Letsgo sendai nobusue_20110528
 

Letsgo sendai nobusue_20110528

on

  • 2,804 views

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

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

Statistics

Views

Total Views
2,804
Views on SlideShare
2,632
Embed Views
172

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 172

http://d.hatena.ne.jp 156
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