Я думаю, что большинство людей, которые отрицательно относятся к генерации кода, либо не являются разработчиками .NET, либо ничего не знают о генерации кода.
Использование .NET в отличие от других платформ имеет большое значение, поскольку .NET имеет встроенные в языки конструкции, позволяющие легко дополнять и расширять сгенерированный код.
Я думаю, что большинство разработчиков .NET, читающих эту статью, уже используют генерацию кода и даже не знают об этом, Entity Framework использует шаблоны генерации кода T4
https://msdn.microsoft.com/en-us/library/bb126445.aspx
Почему генерация кода "хороша"?
Генерация кода используется по одной причине - для объединения двух разнородных прикладных уровней, обычно между базой данных и приложением. Обычно задача создания абстракции схемы базы данных в приложении является методической, а не ручным кодированием, лучше генерировать такой код, так как генерация кода обеспечивает согласованность.
Люди говорили о головной боли при поддержке кода, сгенерированного кодом, я говорил о головной боли при поддержке кода, созданного вручную, который непоследовательно создает абстракцию системы базы данных. Ошибки часто возникают при работе с платформой, которая ведет себя непоследовательно. Генерация кода позволяет создавать код на основе шаблона для нескольких объектов, что является единообразным.
Код, генерирующий структуру в C #, гарантирующую, что ваши шаблоны используют частичные классы и частичные методы ...
https://msdn.microsoft.com/en-us/library/wa80x488.aspx
... позволяет создавать расширения и дополнять сгенерированный код в каждом конкретном случае. Эти конструкции существуют в C # безо всякой другой причины.
Я создаю репозитории, объекты и интерфейсы для обоих. Я бы не стал создавать систему, которая работает с базой данных, не используя генерацию кода.