Я абсолютно ничего не имею против генерации кода, который не нужно модифицировать: это то, что делают компиляторы: -)
Использование инструментов для сохранения набора текста, которое вы бы в любом случае сделали, тоже подойдет. На самом простом уровне, автозаполнение имени функции в IDE - это «генерация кода».
Проблемы могут возникнуть, когда вы генерируете довольно сложный код, затем вносите существенные изменения вручную, а затем хотите повторить его с последней версией генератора кода. В общем, очень сложно распутать ваши изменения и применить их к новой версии. diff3 (или, тем не менее, ваш контроль исходного кода объединяет) может работать, но далеко не гарантированно поможет вообще.
То же самое применимо, когда вы вносите серьезные изменения в открытый исходный код - если вы не можете инкапсулировать свои обязанности в отдельные файлы с минимальными изменениями в базе, то каждый раз, когда выходит новый выпуск, у вас есть куча подверженных ошибкам работа над твоими руками. Так что думайте об этом так: ваш проект опирается на источник, который вы не написали. Если есть вероятность, что вы захотите внести изменения в этот код, вы должны правильно его изолировать.
Правило гласит, что все, что делается автоматически, должно повторяться. Генерация кода не повторяется, если есть какая-то мысль, необходимая для превращения того, что он производит, в то, что вы хотите.