コード生成からメタプログラミングに

ウイザードやXML定義からコード生成を行うと生産性が上がるのは確かだが、保守するコードが増えるに変わりない。コード生成の代わりにメタプログラミングを行うとこの問題はかなり軽減される。Reflection、Genericsや属性(アノテーション)を利用すればC#Javaでもメタプログラミングを行うことができる。コード生成を考える前に一度メタプログラミングで対応できないか考えてみることをお勧めする。