Генерация кода
В нескольких проектах на разных местах работы я использовал генерацию кода. Зачем?
Чаще всего этим достигается сохранение правильности кода при изменениях. Например при добавлении еще одного типа данных в модель предметной области надо добавить класс на Яве, класс на С ++, код преобразования между ними и значение в Enum. Без генерации кода и работы ручками много, и всегда есть шанс что то из этого забыть.
Иногда reflection может быть заменой генерации кода, но даже тогда такой код будет менее читабельный чем шаблон для генерации.
Исходная информация для генерации кода может выглядеть очень по разному — это может быть Ява класс, у которого через reflection считываем свойства и генерим класс на C++, или csv файл, или XML, или еще что нибудь.
Попробую рассказать как я генерирую код в maven проектах с помощью фреймворка jamon.