昨日(2013/03/09)にGroovy基礎勉強会で発表してきました。
僕の発表内容
例の如く(?)発表資料はありません。
gistのリビジョンで
GroovyASTTransformation
のAnnotation Based ASTTransformation
例をいくつか掲載していますので、御覧ください。
https://gist.github.com/mike-neck/5114818/revisions
まあ、GroovyASTTransformationという題で発表したけど
Annotation Based ASTTransformation
を中心に発表しました。なぜかってそれしか知らなかった
GroovyASTTransformation
を初めて書く場合には非常に導入しやすいからです。基本的な(基礎的ではない)ASTTransformationの実装
(
@ToString
、@EqualsAndHashCode
、@Canonical
、@Log
、@Log4j
、@Slf4j
、@Singleton
、@Delegate
)を知っておくことは、それよりもさらに進んだASTTransformation
(Spockとか、Spockとか、GContractsとか)
を読んで、活用して、新たなASTTransformationに移行することの足がかりになるからです。
実際に僕の発表の後のいくつかの黒魔術(Spock、GContracts)では、
ほとんどがASTTransformationを活用していました。
さて翻って、もう一度ASTTransformationの基礎…
GroovyにおけるASTTransformationの構成要素は次の3つです(かなり端折ってます)。
- Expression
- 変数の宣言 (
String name
def age
のようなもの) - 定数の表現(
0
"groovy"
true
) - メソッドの呼び出し(
list.size()
、builder.append('c')
) - Statement
- 変数の初期化(
String name = "hoge";
) - 変数への代入(
String name = builder.toString();
) - 制御文(
if (condition) {//do something} else {//do another thing}
) - return文(
return builder.toString();
) - Node
- フィールド
- メソッド
- クラス
- インポート
これら以外にもまだまだたくさん要素があるのですが、
おおよそこれらを把握しておくと、
ASTTransformationを書きやすいです。
所感
上原さんのGroovy Compilerの話
面白かったし、わかりやすい資料でした。
ASTTransformationをやるならこの辺りの知識も持っていないと
厳しい感じがします。
特にコンパイルフェースに対する理解は重要かと思われます。
自分の話
ヒィヒィしてました。
gdgdもいいところです。
須江さんのGradleの話
Gradleを理解したければ、プラグインを書けというのは
納得する。
きよたかさんのSpockの話
なるほど、アレはよくわからん
ポケットバーサーカーさんのGParsの話
GPars出てきてないしw
nobeansさんのGrailsの話
nobeansさん何気にIntelliJ IDEAガチ勢ということが判明
杉浦さんのGConstractsの話
杉浦さん「今季のおすすめアニメは『レイルガン』と『ニャル子さん』」きょん「( ´Д`)=3」
懇親会
ピザと肉食ったら、トイレ行きたくなったので、
トイレで20分くらい過ごしていました。
おわり。
0 件のコメント:
コメントを投稿