2011-12-30
2011年Groovyのまとめ & これを読んで年末年始に、Groovyを始めよう
2011年Groovyのまとめです。(一部、2011年の記事ではないものも含んでますが)
2012年から何か新しい言語で遊びたいなという人と思ってる人
12/30、12/31に、実家に帰って来て、そろそろ時間を持て余して人。
実家のパソコンだとソフトをインストールすることもできないし、
なにもできないよって人も、Groovy Web Consoleを使えばブラウザ1つ遊べる。
始めてはみたけど、次にどうしたらいいのか分からない人、
周りに聞ける人がいなくて困ってる人。
そんな、あなたがこれからGroovyを使うにあたって「みちしるべ」となるような
情報をまとめてみた。
必要な書籍を買う
プログラミングGROOVY
やはり、手元に置いて見ることが出来る本は便利である。
今なら、プログラミングGROOVY 一択。
これを買っておけば間違いない。
プログラミング言語の書籍が置いてある書店が近くにあればすぐに買いに行こう。
なければ、Amazonでどうぞ。
関谷 和愛、上原 潤二、須江 信洋、中野 靖治
価格: ¥ 3,360 価格は記載時点のものです。購入前にAmazonでご確認ください。
Grailsも使いたい場合はこちら。(若干バージョンが古いけど)
山田 正樹、山本 剛、上原 潤二、永井 昌子、杉山 清美、杉浦 孝博、笠原 史郎、香月 孝太、福岡 竜一、伊堂寺 北斗
価格: ¥ 3,780
価格は記載時点のものです。購入前にAmazonでご確認ください。
無料マガジンを手に入れる

- 検証! Grails2.0の世界 Part.2
- JGGUG合宿2011企画アプリ GDK48投票アプリの作り方(前編)
- GroovyFXで遊ぼう(導入編)
- Betamaxことはじめ
- Grails Plugin探訪 〜第5回 RabbitMQプラグイン〜
- JGGUG4コマ漫画「ぐるーびーたん」第4話
- リリース情報

- Grails をコントロールせよ ! Part2
- Griffon 不定期便 〜第4回 スレッド編その2〜
- CodeNarc を利用してGROOVY のコード品質を上げる 〜第3回 ルールのカスタマイズ〜
- Geb で始める Web テスト 〜第2回 Geb0.6 編〜
- もし新人女子 Java プログラマが『Groovy イン・アクション』を読んだら 〜第2章 もかは『プログラミングGroovy』と出会った〜
- GBench in a Nutshell
- Grails Plugin 探訪 〜第4回 Cloud Foundry プラグイン〜
- JGGUG 4コマ漫画「ぐるーびーたん」第3話
- リリース情報

- 検証! Grails 1.4.0 の世界
- Griffon 不定期便 〜第3 回 バインディング編〜
- CodeNarc を利用してGROOVY のコード品質を上げる〜第2 回 開発ツールと連携〜
- もし新人女子Java プログラマが『Groovy イン・アクション』を読んだら 〜第1章 もかは『Groovy イン・アクション』と出会った〜
- Grails Plugin 探訪〜第3 回 MongoDB GORM プラグイン〜
- JGGUG 4コマ漫画「ぐるーびーたん」第2 話…
- リリース情報

- Grails をコントロールせよ! Part1
- Griffon 不定期便〜第2 回 バインディング編〜
- CodeNarc を利用してGROOVY のコード品質を上げる〜第1 回 CodeNarc とは〜
- Geb ではじめるWeb テスト〜第1 回 導入編〜
- Grails Plugin 探訪〜第2 回 Spock プラグイン〜
- JGGUG 4コマ漫画「ぐるーびーたん」
- リリース情報

- Grails をコントロールせよ! Part1
- Griffon 不定期便〜第2 回 バインディング編〜
- CodeNarc を利用してGROOVY のコード品質を上げる〜第1 回 CodeNarc とは〜
- Geb ではじめるWeb テスト〜第1 回 導入編〜
- Grails Plugin 探訪〜第2 回 Spock プラグイン〜
- JGGUG 4コマ漫画「ぐるーびーたん」
- リリース情報
必要な道具を準備する
Groovyを始めるには、最低限、JavaとGroovyが必要だ。
最新版なら、Java SE7 と Groovy 1.8.5 になる。
ダウンロード先
Japanese Tutorial 1 - Getting started
書いたときに参照できなかったので、ようやく追加。
書くのは、好きなIDEやエディタでどうぞ。
追加
Eclipse
NetBeans
IntelliJ IDEA
- IntelliJ IDEA Groovy and Grails Features & Screenshots
- IntelliJ IDEA Plugin
- IntelliJ IDEA Plugin by JetBrains
Oracle JDeveloper
Emacs
Vim
- groovy.vim : syntax file for the groovy programming language
- groovy.vim : Runs or compiles Groovy scripts
秀丸
jEdit
その他
- TextMate
- XCode
- SubEthaEdit
- TextPad
- EditPlus
- UltraEdit
- PS PAD
- Enscript
- Highlight
- Crimson Editor
- Kate (KDE4)
- Gedit (Gnome)
GroovyConsoleを立ち上げて簡単に試すこともできる。もちろんPowerAssertも機能する。
実家に帰宅して、親や家族のPCのため、JavaやGroovyをインストールすることができなければ
JGGUGのWeb Consoleを使用してみよう。これならブラウザ1つで遊べる。
とりあえず書いてみる
日本の公式サイト
ghelloを写経する
- 動かして楽しむ
- どうしてかを考えて悩む
- 解説を見て納得する
- もう一度動かして楽しむ
初っ端からブラウザが立ち上がるHello Worldなんてありえないつーの。
途中からもうなにがなんだか・・・
140文字でよくもまぁこれだけHello Worldがでてきたものだ。
解説は以下を参考に。
他人のソースを読む
Groovyスクリプト100本斬り
- HelloWorld(Java完全互換版)
- リスト操作(基礎編:CRUD系操作とイテレーション)
- マップ操作(基礎編:CRUD系操作とイテレーション)
- 範囲(Range)操作(基礎編:CRUD系操作とイテレーション)
- Groovy Ustream API
- Jakarta POI のGroovyサンプル1
- Jakarta POI のGroovyサンプル2
- Twitter: OAuthの認証サンプル
- gmailからメールを受信する
- twitterにつぶやく
- Markdownの実装
- 単位変換
- 為替情報の取得
- topコマンドの実装
- 正規表現:ファイルの拡張子を置換する
- 正規表現:FQCNからクラス名を抜出す
- ディレクトリを走査して特定のファイルを抽出
- grep
- tail --f
- 文字列を分割してListに変換
- ファイル名の一括置換
- ファイル内の特定の文字列を一括置換
- growlみたいなの(あんのか?)
- ファイルのコピー
- 文字コード判定
- 掲示板
- ファイルをドラッグ&ドロップできるウィンドウ
- GDKのコマンドラインビューア
- JSONの読み書き。Grails無しで
- XMLの読み書きを色んな方法で
- スクリプトを実行するスクリプト
- お手軽JMXビューア
- zip圧縮・解凍
- DBとテーブル名を引数に実行すると、標準入力から読み取ったCSV/TSVデータを指定したテーブルにinsertするスクリプト
- 日時の演算処理。例えば「現在時刻の3日と4時間後を求める」「特定の時刻間の時間数を求める」
- wc コマンド
- クイックソート
- 閏年
- 回帰分析
- KVSの操作(保存、取得)
- XMLDB(existが一番簡単かな?)の操作
- いろいろな型変換(toメソッド、キャスト、as)
- duck typing
- マルチメソッド(動的ディスパッチ)
- 数値型(Javaとの相違点など)
- GStringが遅延評価ぽくなるケース
- StringクラスのGDKメソッド
- 正規表現(基本編)
- fizzbuzz
- GroovyTestCaseと各種拡張assertメソッド
- Groovy Truthのカスタマイズ
- 演算子オーバーロード
- クロージャとdelegate
- 何でも使えるぜGroovyなswitch--case
- Expando使用例
- 実行中のクラス/メソッド名を取得
- curry/rcurry/ncurry
- 動的なメソッド追加
- 存在しないメソッド/プロパティアクセスをフック
- ConfigSlurper
- テキストファイルの中身を行番号付きで表示
- AntBuilder
- 日付の解析とフォーマット
- 外部コマンドの起動と出力の取得等
- 環境変数取得
- CliBuilder
- HTTPファイルアップロード
- HTTP GET/POST
- webサーバ(Jetty)
- Base64 エンコード/デコード
- webスクレイピング(nekohtml)
- HTML生成
- ブラウザで任意のURLを表示(OS非依存)
- YAML
- SwingBuilderと@Bindableでモデル・ビュー連携
- grocessing (groovy+processing.org)
- JFreeChartでグラフ生成
- MongoDB
- TimeCategory
- トランプのシャッフル
- 超シンプルRSS/Atomリーダー
- クラスパスの動的な変更
- jlineで行編集/補完/ヒストリ付きコマンドライン
- 形態素解析
- DerbyでGroovySQL
- JavaとしてもGroovyとしても正当だが結果が異なるコード
GDK48 総選挙
- IRCボットテンプレ。(半手動IRCボット: 別チャンネルにて、say:hello。で、発言投げ。)
- Closureをいじってみた https://gist.github.com/1342315 written by @mike_neck #gdk48 #jggugcamp
- gexcelapiを使って、Excelからastah*のドメイン定義を作成するサンプル。(要astah* professionalライセンス)
- 指定したURLの内容からジャンルをベイズ推定: groovy bayes.groovy url
- CodeNarcでGroovyコードをチェック(カレントディレクトリの**/*.groovyを検証し、結果をCodeNarcReport.htmlに出力)
- Wikipedia scraping: groovy wikipedia.groovy keyword キャッシュ機能付き
- Web上にあるjarを、GROOV_HOME/lib にダウンロードする
- groovy.json.JsonSlurperのサンプル
- ファイルのコピーをいくつか
- 6 - 14 桁のパスワードを発行するスクリプト (少し @fumokmm さんのコードを拝借している) written by @mike_neck https://gist.github.com/1341399 #gdk48 #jggugcamp
- The main motief of Lightening Talk (build.gradle to avoid slow test problem) written by @mike_neck
- calコマンド: groovy cal.groovy year month
- GroovyでGitコマンド。今のところinit/clone/statusがそれとなく使える。使用例: groovy git clone git@github.com:jenkinsci/mongodb-plugin.git
- 合宿の自己紹介・改
- きのくにやPiano
- 抽象クラスの概念を教えるとき用のサンプル.
- 指定したディレクトリ配下の全ファイルをトラバースしてファイル情報をSqliteDBに突っこんで、クエリをかけて抽出(by uehaj)
- groovy.json.StreamingJsonBuilderのサンプル
- MapからMapを作る。
- 形態素解析
- JsonBuilderを使う際に間違いやすい部分のサンプル(2011/6JGGUG総会のLTで発表した内容を元に解説付き)
- Groovyのリスト操作
- コードで自己紹介
- groovy.json.JsonOutputのサンプル
- 「コードで自己紹介」用に作ったプログラム
- GroovyでProcesssing風にプログラムを書くサンプル
- 手抜きお絵描きプログラム
- Fundamental Web Project build script written by @mike_neck
- ありがちなボールを跳ね返すゲーム風のプログラム
- コードで自己紹介 by toby55kij
- jggugcamp2011の自己紹介
- 自己紹介スクリプト(tyama)
- コードで自己紹介 @JGGUG Camp 2011
- クソゲーによる自己紹介(by uehaj)
- Self introduction by Google+ API and GroovyFX
- @mike_neck 自己紹介
- Twitter4J+GroovyでストリーミングAPI
- 漢数字->数字
追記
2011/11/05 TDDBC横浜 @nobeansによる美しいSpockのコード
技術情報
IBM developerWorks 実用的な Groovy
ブログを読んでみる
2011年にG*のエントリが複数あるブログ
誰かを忘れてるような・・・
G* Adevent Calendar 2011
- 【Day 01】プログラミングGROOVYに書いてないけど、便利なGroovyプロダクト
- 【Day 02】G*と言えば猫、ということで子猫Tube作りました
- 【Day 03】LupinFX
- 【Day 04】Groovyを野良ビルドしてみよう
- 【Day 05】Spockでデータドリブンなテスト
- 【Day 06】GrailsのプラグインリポジトリとしてGithubを使う
- 【Day 07】Handy Gradle startup script
- 【Day 08】Groovy Eclipse Pluginのあれこれ
- 【Day 09】Gradleビルドランゲージリファレンス
- 【Day 10】GroovyでVert.x
- 【Day 11】resolveStrategy の基礎
- 【Day 12】私がGroovyを好きな9つの理由 2011年版
- 【Day 13】G5、それはGroovy使いの為のスライドショーツール
- 【Day 14】grailsでwebアプリをつくってみる(つくってみた(手直しした))。
- 【Day 15】Grailsをインタラクティブに使う!
- 【Day 16】GroovyとQuartzとTwitter APIとTwitter4Jの甘い関係
- 【Day 17】自分のPCにある写真をPicasa webに丸ごとアップ
- 【Day 18】G*アドベンドカレンダー JGRの文法比較
- 【Day 19】ドメインを取得しました
- 【Day 20】groovyコマンドオプション一巡り
- 【Day 21】恥ずかしくて今さら聞けない、GMongo講座 2
- 【Day 22】Groovyの疑似デバッガgdb
- 【Day 23】Grettyで割り勘計算機
- 【Day 24】MerryChristmas!!
- 【Day 25】groovyでTestNGのテストコードを書いてみよう
個別の記事
- インターネットが使えない劣悪環境でGroovyと戯れる
- quickrun.elで開発効率アップ
- Groovy で Storm を使う
- Groovy で Apache ZooKeeper を使う - Webコンテンツの分散ダウンロード
- Apache Mahout でレコメンドを実践 - GitHub リポジトリをレコメンド
- Apache Mahout で単純なレコメンドを実施 - Groovy
- 非同期処理でWebコンテンツをダウンロードする方法2
- jclouds の BlobStore API - 単純な Blob の put/get
- Ratpack + JHaml + Morphia で MongoDB を使った Web アプリ開発
- LINQやコレクションAPIを使ってCSVファイルからデータ抽出 - C#, F#, Scala, Groovy, Ruby の場合
- SQLを使ってCSVファイルからデータを抽出する方法 - Groovy + H2 データベース
- Embed Jetty - Groovy と Scala で Jetty を組み込み実行
- FC2ブログのユーザー情報を取得(Groovyでxml-rpc)
- FC2ブログへの投稿を行う
- SQLiteを使ってみる
- アプリケーションの二重起動を禁止する
- textArea(JTextArea)で、タブによるフォーカス移動を実現したいとき
- windows用の実行ファイル(exe)を簡単に作成
- ルパンっぽいもの
- JsonSlurperを使ってfacebook内のいいね!してないフィードを一覧表示
- JsonSlurperを使ってfacebook apiを呼び出す
- Groovyでfacebookへ近況書き込み
- XmlSlurperで取得したノードをxmlとして出力する
- サイトのhtmlをXmlSlurperで処理する
- cygwinでカレントディレクトリにスペースを含む場合にshellbang付きgroovyが動かせない件のパッチ
- Gebを試してみる(再再々)
- JavaプロジェクトでGroovyを導入すべき5つの理由
- Gradleで簡単にFindBugsを使えるようにしてみた
- BL的にGroovyのmetaClassを使うとこうなる。
- Groovyのassertがすごく見やすい件について
- Gradle でメールを送ってみる
- Spockでもテストスイートしてみる
- 任意の条件でテストをスキップする
- 任意のフィーチャーメソッドだけを実行する
- Spock のメソッド名は識別子でなくてもよい
- Eclipse の JUnit ビューを等幅フォントでいい感じに表示する
- Java プロジェクトに Spock を導入するための3ステップ
- 2011-12-01 それでも Spock を使い続ける理由
- Gradle で Spock してみる
- Gradle の Code Quality プラグインでエラーを無視する
- Gradle で Amazon EC2 を操作してみる
- Gradle で環境ごとにあれもこれも変更する
- Gradle で環境ごとに構成を変更する その2
- Gradle で環境ごとに構成を変更する
- Gradle は Make・Ant・Maven の良いとこ取り
- タスク定義の << には注意しよう
- Gradle のカスタムプラグインを JAR ファイルで公開する方法
- プロパティファイルを native2ascii するためのプラグインを作ってみた
- groovyとoracleでバッファキャッシュヒット率を取得する
- groovyとoracleでデータファイルごとのI/O回数・ブロック数を取得する
- groovyとgeotoolsで指定した地点に三角マークを描画する
- groovyとredmineでプロジェクトの一覧を取得する
- groovyとgeotoolsで指定した地点にラベルを描画する
- groovyとgeotoolsで特定の国の色を変更する
- groovyとjsoupでworldbank.orgから日本の総人口に対する15歳〜64歳の割合を取得する
- groovyとrabbitmqでパターンを指定して複数のキューにメッセージの送信を行う(topic exchange)
- groovyとApache Commons Mathで相関係数を求める
- gmongoでMapReduceを使用して配列フィールドの値をカウントする
- groovyとjavamailで画像付きHTMLメールを送信する
- groovyとjsoupでworldbank.orgから各国の首都名を取得する
- groovyとJackrabbitでWebDAVサーバ上のリソースをダウンロードする
- groovyとsardineでbox.net上のファイル・フォルダを列挙する
- groovyでjarに含まれるディレクトリを一覧表示する
- groovyとjsoupで天気情報を取得する
- groovyとjavamailで添付ファイル付のメールを送信する
- groovyとeXistでXQueryを実行する
- groovyとMongoDBのまとめ
- groovyとVI Java APIのまとめ
- groovyとJavaMailでimapプロトコルを使用してgmailのラベルをリネームする
- groovyとjava-memcached-clientのまとめ
- groovyとJRedisで複数のkey-valueの操作を行う
- groovyとgooglechartwrapperでレーダーチャートを描画する
- ラベル: JRedis groovyとApache Derbyでテーブルのカラムを列挙する
- groovyとSpiderDBでテーブルのカラムの位置を取得する
- groovyとgooglechartwrapperでメーターを描画する
- groovyとgooglechartwrapperで円グラフを描画する
- groovyとApache ClickでTreeを使用する
- Griffon で Hello World !
勉強会、イベントの録画を見る
Java Developer Workshop #2 セッション録画
第 6 回 JavaFX 勉強会
第18回 G*ワークショップ
- Griffon不定期便 〜G*ワークショップ編〜 1
- Griffon不定期便 〜G*ワークショップ編〜 2
- Griffon不定期便 〜G*ワークショップ編〜 3
- Griffon不定期便 〜G*ワークショップ編〜 4
- プログラミングGroovyFX 〜ポストJavaFX ScriptはGroovyで決まり!〜 1
- プログラミングGroovyFX 〜ポストJavaFX ScriptはGroovyで決まり!〜 2
- プログラミングGroovyFX 〜ポストJavaFX ScriptはGroovyで決まり!〜 3
- プログラミングGroovyFX 〜ポストJavaFX ScriptはGroovyで決まり!〜 4
第17回 G*ワークショップ
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 1
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 2
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 3
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 4
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 5
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 6
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 7
- 1.4.0.M1 !? 2.0.0.M1 -更新メモ- 8
*途切れ途切れになってる。
- うさみみとJenkinsとG*な開発環境 01
- うさみみとJenkinsとG*な開発環境 02
- うさみみとJenkinsとG*な開発環境 03
- うさみみとJenkinsとG*な開発環境 04
- うさみみとJenkinsとG*な開発環境 05
- うさみみとJenkinsとG*な開発環境 06
- うさみみとJenkinsとG*な開発環境 07
- うさみみとJenkinsとG*な開発環境 08
- うさみみとJenkinsとG*な開発環境 09
- うさみみとJenkinsとG*な開発環境 10
- うさみみとJenkinsとG*な開発環境 11
- うさみみとJenkinsとG*な開発環境 12
- うさみみとJenkinsとG*な開発環境 13
- うさみみとJenkinsとG*な開発環境 14
*途切れ途切れになってる。
第16回 G*ワークショップ+JGGUG総会
第15回 G*ワークショップ
まとめを読む
- 第19回 G*ワークショップ レポート
- 第19回 G*ワークショップに参加してきた -Shinya’s Daily Report-
- 2011/11/22_第19回 G*ワークショップ( #jggug )
- 第18回 G*ワークショップ G*なGUI祭り
- 20110916_第18回G*ワークショップ( #jggug )
- 第17回 G*ワークショップに参加してきた -Shinya’s Daily Report-
- 20110729_第17回 G*ワークショップ(#jggug ) togetter
- Groovyist夏の思い出 2011 第17回 G*ワークショップのまとめ
- 第16回 G*ワークショップ+JGGUG総会に参加してきた -Shinya’s Daily Report-
- 第15回 G*ワークショップに参加してきた -Shinya’s Daily Report-
- 第15回 G*ワークショップに参加してきた
追記
レポート職人の記事追加
- Groovy勉強会、そしてBootCampへ…。 うさみみ×レガシーおじさん×わっしょい職人×鼻メガネ会長 時事放談
- リー化と部分適用の違いと誤用
- GrailsとPluginに関するメモ
- ScalaとGroovyの比較的な話?
- 関西におけるGrailsのススメ
- FreeMindとGroovyに関するメモ
- Groovyらへん Twitter座談会 2011/09/03
Twitterを活用して仲間を見つけよう
追記
上記のTwitterIDをフォローする。
また、そのフォロー、フォロワーもGroovyistかGroovyに興味を
持っている人のはずなので、活発にGroovy関連のことをTweetしてる人を
フォローするか、リストに追加してみよう。
JGGUG、勉強会に参加してみる
JGGUG にユーザー登録してみる
G*ワークショップに参加してみる
次回の予定(未確定なので注意)
次回G*ワークショップは1/20(金)、VMwareさん@浜松町を予定。内容は、先日ロンドンで開催されたGroovy&Grails eXchange参加報告と、新年LT大会!LTネタを考えつつ正式告知を待て! #jggug
その他のGroovy関連の勉強会に参加してみる
G*ワークショップ以外にも、JGGUG名古屋支部、大阪支部で開催している勉強会もある。
Groovy、Grails、JGGUGなどの検索で探して。
イラストを楽しむ
追記
- Groovyちゃん
- ツキちゃん
- みちしるべ - 2012年05月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年06月 Groovyist/G*のあれやこれや
- みちしるべ - 「ねーねーGroovy逆引きレシピって何色?」だと!?
- みちしるべ - 2012年07月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年08月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年09月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年10月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年11月 Groovyist/G*のあれやこれや
- みちしるべ - 2012年12月 Groovyist/G*のあれやこれや
- みちしるべ - 2013年1月 Groovyist/G*のあれやこれや
- みちしるべ - 1363996960***2013年2月 Groovyist/G*のあれやこれや
- みちしるべ - 2013年3月 Groovyist/G*のあれやこれや
- みちしるべ - 2013年4月 Groovyist/G*のあれやこれや




















