Groovyを勉強するときの手順
なんかプログラミング言語ならどれでも一緒だと思うんだけど、Groovyやるならこうするのがいい。と思ったので。
コードを書くとき
Dumpを使う
いま使いたい変数にどんなものが入っているのかわからない。型がなにでどんなメソッドやフィールドを持っているのか。
そんなときはprintln hoge.dump() をする。
[k1:10, k2:30].each{ println it.dump() }
みたいな。
実行するとこんな出力になる。
Assertを使う
dumpと似ているけど、メソッドチェーンになっているときに、どこでどんな値が返ってきているかを確認するのによい。
assert [k1:10, k2:300, a1:100, a2:20].collectEntries {k,v -> [(v):k]}.groupBy {k,v -> v.startsWith "a"}[true] == [100:"a1", 20:"a3"]
試すときはIDEAのGroovyShell
GroovyConsoleのほうが気軽でいいけど、初心者的にはGroovyShellがいい。理由は補完が効くし、プロジェクトのClassPathがとおっているので、サンプルコードを適当に保存して、そのクラスをGroovyShellで試すとかできる。
IDEAの[Tools]->[GroovyShell]で使える。
コードではなくテストコードを読む
コードがどんな挙動をしているかを調べるならプロダクトコードを読むよりテストコードを読む方が効率がいい。これはどんなソフトウェアでもいえる。
逆にテストコードがその体をなしていないなら、そのプロダクトはテストコードの必要性が低い特性であるか、テストに関して手抜きだとわかる。
入門の参考
プログラミングGroovy
個人的には入門はこの書籍を読めばだいたい事足りると思っている。良書。
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (155件) を見る
Groovy本家サイトを読む
Getting StartとUserGuideくらいを読みましょう。
Groovy - Getting Started Guide
Groovy - User Guide
余裕があればTesting Guideも。
Groovy - Testing Guide
困ったときのAPIリファレンスも
Page Redirection
Page Redirection
Gradle本家サイトを読む
スタートするのはJenkins並に簡単なビルドツールですので。GroovyのUserGuideを読んだあとくらいなら、Gradleのドキュメントを読みながらだいたい出来ると思います。(おれはGradleのTooling APIで遊ぶぞー!とかでなければ。)
Gradle - Build Automation Evolved
Gradle 日本語ドキュメント
基礎の参考
Groovy in Action
はやく第二版出ろ!って思っていますが、なかなか出ませんね。明らかにやる気を感じませんが、日本語書籍でGroovyのMOPとかInterceptorについて触れているのはこちらの書籍ですので、Groovyをちゃんと使いたくなるならぜひ手に入れましょう。現状絶版ですが、ジュンク堂とかでよくみかけます。
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 146回
- この商品を含むブログ (121件) を見る
ソースコード
テストコード読んでわからないとか、Groovyのことをもっと知りたくなったらプロダクトコードを読むのがよいです。基礎的な意味では、DGMとかParserとかCompilerとかMOPとかがよいと思います。
困ったときのAPIリファレンスも
Page Redirection
Page Redirection
応用の参考
本家サイトのAdvanced User Guideを読む
現実的にコードを書きたくなるときのスタートしてはここらへんが妥当です。
Groovy - Advanced Usage Guide
CookBook Groovy - Cookbook Examples もいいですし、個人的には id:fumokmm id:uehaj id:bluepapa32 id:nobeans id:kiy0taka らへんがいいな。。。ってあげていこうと思ったのだけど、まとめ的な意味では
id:orangeclover が毎月?まとめてくれている
【2012年07月 Groovyist/G*のあれやこれや - みちしるべ】のシリーズが素晴らしい。
あと
【Grails Japan:今週のGrails!】もいい。
まとめ
まぁここらへんに書いた事正直どうだっていいってことかもしれないけど、一度書いておくと今後役に立つかもしれない!!!ので。
Let's Groovy Life!