「プログラミングGroovy」Groovyってなんだろ?編
-
Upload
kazuchika-sekiya -
Category
Technology
-
view
3.314 -
download
9
description
Transcript of 「プログラミングGroovy」Groovyってなんだろ?編
![Page 1: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/1.jpg)
プログラミングGroovy
Java
![Page 2: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/2.jpg)
‣ 本初のGroovy本!‣300ページ前後‣¥3,000前後‣6 下旬刊 ?
Java
Java開発者にGroovyの魅 を広く伝えたい!
![Page 3: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/3.jpg)
関 和愛 (@kazuchika)上原 潤 (@uehaj)須江 信洋 (@nobusue)中野 靖治 (@nobeans)
<執筆チーム>
本Grails/Groovyユーザーグループ (@jggug)
![Page 4: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/4.jpg)
< 紹介>
関 和愛(せきや かずちか)
‣HotJava時代からのJavaラー‣「Groovyイン・アクション」翻訳
‣JGGUG運営委員
![Page 5: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/5.jpg)
第1章 Groovyの世界へようこそ!第2章 Groovyの利 法第3章 プログラミング 語Groovy第4章 Groovyのライブラリ第5章 進んだ話題第6章 Groovyエコシステム第7章 Groovy 1.8の新機能付録A Eclipseプラグイン
< 次>
![Page 6: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/6.jpg)
Java
Groovyってなんだろ?編
![Page 7: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/7.jpg)
メタプログラミング
スクリプティング
オプショナルタイピング
コレクションリテラル
クロージャ
GDK (Groovy JDK)
演算 オーバーロード
XML/JSONサポート
ビルダー
Java VM上で動作する軽量・動的な 語
![Page 8: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/8.jpg)
Groovyのユニークさ
“Groovyは、Javaを置き換えるのではなく、あくまでJavaエコシステムの 員として、より洗練され、進化した次世代Javaプラットフォームの実現を 指しています。”
(1章より)
他のJVM 語との違い
![Page 9: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/9.jpg)
2003
2004
2005
2006
2007
2008
2009
2010
2011
James Strachan らによって開発
Guillaume Laforgeが開発リーダーに
G2One設
SpringSourceによるG2One買収
VMwareによるSpringSource買収
JSR-241
Groovy 1.0Groovy 1.5
Groovy 1.8
Groovy 1.6Groovy 1.7
Groovy 史
貫したコミュニティ主導のオープンソース開発
![Page 10: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/10.jpg)
簡潔さ
柔軟性 Java親和性
Groovyの特徴
![Page 11: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/11.jpg)
簡潔さ•Javaの1/3~1/10の記述量※あくまで個 の感想です•処理の本質が えやすい
![Page 12: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/12.jpg)
// Hello.javapublic class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); }}
![Page 13: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/13.jpg)
// Hello.groovypublic class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); }}
Java互換バージョン
![Page 14: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/14.jpg)
// Hello.groovyprintln "Hello, World!"
ミニマムバージョン
![Page 15: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/15.jpg)
簡潔さを実現する要素•定型コードの 動 成•コレクションリテラル記法•演算 オーバーロード•カッコやセミコロンの省略•クロージャなど
![Page 16: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/16.jpg)
柔軟性•動的型付けダックタイピング
•メタプログラミングMOP (Meta Object Protocol)AST変換
![Page 17: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/17.jpg)
ダックタイピングclass Dog { void cry() { println "Bowwow!" }}class Cat { void cry() { println "Meow!" }}void kick(obj) { obj.cry() }kick(new Dog())kick(new Cat())
![Page 18: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/18.jpg)
MOP:メソッドの動的追加
String.metaClass.shout = { println delegate.toUpperCase() + "!" }"Let’s go developers".shout()
"LET S GO DEVELOPERS!"が表 される
![Page 19: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/19.jpg)
Java親和性•バイナリレベル互換•ソースレベル互換•実 環境が共通•ツールの共有・内蔵• 化の共有
![Page 20: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/20.jpg)
デモ: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:".")
![Page 21: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/21.jpg)
デモ:GrapeでTwitter4J
@Grab('org.twitter4j:twitter4j-core:[2.2,)')import twitter4j.*
twitter = new TwitterFactory().instancetwitter.updateStatus "デモ実演中 #5000dai"
バージョン2.2以降のTwitter4Jを 意せよ、
の意味
![Page 22: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/22.jpg)
7つの導 パターンby Dierk Koenig
Javaプロジェクトへの
![Page 23: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/23.jpg)
1. 万能接着剤(Super Glue)
JavaのコンポーネントやフレームワークをGroovyで糊付け
2. やわらかな 臓部(Liquid Heart)
Javaアプリの中核にあるビジネスロジックをGroovy(DSL)でスクリプティング
3. 内視鏡 術(Keyhole Surgery)
Groovyスクリプトを接続する さな を設け保守や診断に活
4. スマート設定(Smart Configuration) Groovyスクリプトを設定ファイルとして使
5. 無制限の解放(Unlimited Openness) 全部Groovyで構築しちゃおう!
6. さんスクリプト(House-elf Scripts) 各種ユーティリティツールをGroovyで作る
7. プロトタイプ(Prototype) プロトタイプをGroovyで開発
![Page 24: 「プログラミングGroovy」Groovyってなんだろ?編](https://reader030.fdocuments.net/reader030/viewer/2022020207/554f5c93b4c905b9508b54a5/html5/thumbnails/24.jpg)
まとめ
GroovyはJavaを補完・強化する最強の相棒。Javaを愛するあなたもJavaに疲れたあなたも
ぜひ本 からお試しください!
Java