ネタは「コードジェネレーション」。参考文献は 『Code Generation in Action』 by Jack Herrington。
しかし、コードジェネレーションっていうテクニックは 対象言語がRubyのような動的言語であればそれほど必要になることはない。 メタプログラミング機能を使った方が便利だし手軽だからだ。
Railsの用にコードジェネレーションとメタプログラミングの両方を活用するケースもあるけど。
で、今回はJavaのためのコードジェネレーションをRubyで行うという 話の流れにしようと思っているのだが、 いかんせん私のJavaの経験がほとんどないので 悩ましい。対象言語をCとかにしたいところではあるのだが、 Cにはマクロがあるのでけっこうカバーできちゃうしね。
苦手なテーマを選ぶと書くのに苦労する。 先週末は具合が悪かったから、なかなか進まなかったし。
私はJavaのテストプログラムを書くのにRubyを使っています。YAMLでテストデータを書き、eRubyのテンプレートを通すとJUnitのテストプログラムができる寸法です。Javaはヒアドキュメントがないので、こうでもしないとやってられません。あとは、1.5より前のJavaにはenumがなかったので、enumに相当するコードを生成するスクリプトをRubyで作ってました。
kwatchさんのような人が増えるのが、今回の記事の目的です。
役に立つとよいのですが。
実物が出まわるのは1ヶ月後です。