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.

G* Workshop in Fukuoka - Introduction

1,101 views

Published on

「G*ワークショップ in 福岡」のイントロダクションで使用したスライド
http://kokucheese.com/event/index/45561/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

G* Workshop in Fukuoka - Introduction

  1. 1. G* Workshop in Fukuoka 2012/09/01Photo by pacyopi
  2. 2. Who am I?  関⾕谷  和愛  (@kazuchika)  ‣「Groovyイン・アクション」共訳‣「プログラミングGROOVY」共著‣元サン、現⽇日本オラクル勤務‣JGGUG運営委員⻑⾧長
  3. 3. PROGRAM14:30-‐‑‒15:00 イントロダクション @kazuchika Groovy  2.0の新機能15:00-‐‑‒15:30 @uehaj 〜~静かなること静的コンパイルのごとし〜~15:40-‐‑‒16:40 Grails  2.xで始めよう! @tyama16:50-‐‑‒17:30 Gradle  1.xを使ってみよう! @tkz Javaのテストコードを1/4にする17:30-‐‑‒18:00 @bikisuke グルービーなテストを導⼊入しよう! @kis,  @hirosk,  18:00-‐‑‒18:30 ⾃自由LT⼤大会! @toby55kij,  @kiy0taka,   @touchez_̲du_̲bois ☞懇親会へ
  4. 4. Special Thanks きしだ  (@kis)  さん ⽇日本オラクル九州⽀支社
  5. 5. JGGUGって? 「じぇいがぐ」と読みます
  6. 6. ⽇日本Grails/Groovyユーザーグループ‣2009年年にGrailsコードリーディングを⺟母体に設⽴立立‣現在メンバ数およそ300名 ‣運営委員9名+サポートスタッフ5名‣Web:  http://www.jggug.org/‣Twitter:  @jggug  (ハッシュタグは#jggug)
  7. 7. JGGUGの活動‣G*ワークショップの定期開催(ほぼ⽉月例例) ‣東京、名古屋、⼤大阪、仙台、福岡!‣デブサミ、JavaOne、JJUG  CCC等への参加‣合宿(年年1回)‣G*Magazine発⾏行行(おおむね季刊)
  8. 8. G*  Magazinehttp://grails.jp/g_mag_jp/ PDF  /  EPUB
  9. 9. Groovyとは? JVM⾔言語っていっぱいあるけど…
  10. 10. スクリプティング オプショナル クロージャ タイピング コレクション演算⼦子オーバーロード リテラル Java  VM上で動作する メタプログラミング 軽量量・動的な⾔言語 XML/JSONサポート GDK  (Groovy  JDK) ビルダー
  11. 11. Groovyのユニークさ 他のJVM⾔言語との違い “Groovyは、Javaを置き換えるのではなく、 あくまでJavaエコシステムの⼀一員として、 より洗練され、進化した次世代Javaプラット フォームの実現を⽬目指しています。” (「プログラミングGROOVY」より)
  12. 12. ビジネス上の おつきあい 家族的・共⽣生 ※あくまで個⼈人的なイメージです
  13. 13. Groovy⼩小史 Groovy  2.0(イマココ) VMwareによる SpringSource買収 SpringSourceに 2012 よるG2One買収 2011 G2One設⽴立立 2010 Guillaume  Laforge⽒氏 2009 が開発リーダーに 2008 Groovy  1.8 2007James  Strachan⽒氏ら Groovy  1.7 によって開発 2006 Groovy  1.6 2005 Groovy  1.5 2004 Groovy  1.0 2003 ⼀一貫したコミュニティ主導のオープンソース開発 JSR-‐‑‒241
  14. 14. 簡潔さ Groovyの特徴 Java柔軟性 親和性
  15. 15. 簡潔さ•Javaの1/3〜~1/10の記述量量※あくまで個⼈人の感想です•処理理の本質が⾒見見えやすい
  16. 16. // Hello.javapublic class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); }}
  17. 17. // Hello.groovypublic class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); }} Java互換バージョン
  18. 18. // Hello.groovyprintln "Hello, World!" ミニマムバージョン
  19. 19. 簡潔さを実現する要素•定型コードの⾃自動⽣生成•コレクションリテラル記法•演算⼦子オーバーロード•カッコやセミコロンの省省略略•クロージャなど
  20. 20. 柔軟性•動的型付け✓ダックタイピング•メタプログラミング✓MOP  (Meta  Object  Protocol)✓AST変換
  21. 21. ダックタイピングclass Dog { void cry() { println "Bowwow!" }}class Cat { void cry() { println "Meow!" }}void kick(obj) { obj.cry() }kick(new Dog())kick(new Cat())
  22. 22. MOP:メソッドの動的追加String.metaClass.shout = { println delegate.toUpperCase() + "!" }"Groovy rocks".shout() "GROOVY  ROCKS!"が表⽰示さ れる
  23. 23. Java親和性•バイナリレベル互換•ソースレベル互換•実⾏行行環境が共通•ツールの共有・内蔵•⽂文化の共有
  24. 24. 例例:AntBuilderurl = "http://dist.groovy.codehaus.org/distributions/groovy-binary-1.8.0.zip"tmpfile = File.createTempFile("ant", ".zip")ant = new AntBuilder()ant.get(src:url, dest:tmpfile)ant.unzip(src:tmpfile, dest:".")
  25. 25. 例例:GrapeでTwitter4J バージョン2.2以降降の Twitter4Jを⽤用意せよ、 の意味@Grab(org.twitter4j:twitter4j-core:[2.2,))import twitter4j.*twitter = new TwitterFactory().instancetwitter.updateStatus "デモ実演中 #jggug"
  26. 26. Javaプロジェクトへの7つの導⼊入パターン(改) by  Dierk  Koenig
  27. 27. 1.  万能接着剤 Javaのコンポーネントやフレームワークを (Super  Glue) Groovyで糊付け 2.  やわらかな⼼心臓部 Javaアプリの中核にあるビジネスロジックを (Liquid  Heart) Groovy(DSL)でスクリプティング 3.  お化粧 Javaライブラリをラップして使いやすく (Lipstick) 4.  内視鏡⼿手術 Groovyスクリプトを接続する⼩小さな⼝口を設け (Keyhole  Surgery) 保守や診断に活⽤用 5.  無制限の解放 全部Groovyで構築しちゃおう!(Unlimited  Openness) 6.  ゴーストライター Groovyが⽔水⾯面下でコード⽣生成 (Ghost  Writer)7.  ⼩小⼈人さんスクリプト 各種ユーティリティツールをGroovyで作る (House-‐‑‒elf  Scripts)
  28. 28. Groovyエコシステム ⾔言語だけじゃない!
  29. 29. Spock、Geb、Caelyf、GroovyFXほか多数
  30. 30. と めまGroovyはJavaを補完・強化する最強の相棒。 Javaを愛するあなたも Javaに疲れたあなたも ぜひ本⽇日からお試しください!
  31. 31. プレゼント!

×