ジェネレーションギャップパターンとは

最近関わっている仕事のほとんどは,設計書からソースコードを自動生成するようにしている。僕が考えるに,XMLなどの設定ファイルだったら自動生成してくれるのは嬉しいと感じるのだが,やっぱりJavaのソースコードもある程度は定型的になってほしいので,自動生成の対象とすることが多い。

自動生成で問題になるのは,開発者が手を入れた後に設計書が変更になった,というケースだ。もちろん手を入れたコードと設計書にギャップが生じるので,多くの場合自動生成しなおすと,手で加えた部分が消えちゃったり,矛盾が起きてコンパイルエラーとか動作不良を起こしたりする。非常によろしくない。

ではどうしたらいいかというと,それ用のデザインパターンが存在する。

要は,自動生成されたコードに手を入れるのではなく,そのサブクラスを作って手を加えていきましょう,ということ。そうすれば,自動生成されるコードの概観(サブクラスに公開されるAPI)が変更されなければ,設計書の変更も反映できるし,手を入れた部分もそのままでOK!という筋書きである。

目から鱗,である(言葉の使い方間違ってるかも)。すばらしい。

このエントリーをはてなブックマークに追加

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて