Відповіді:
Давайте перефразуємо це:
Чи варта вартість хорошого автоматичного генератора коду?
Так.
Чи варто поганий автоматичний генератор коду, який створює більше роботи для всіх інших, але це варто того автора?
Абсолютно не. Немає виправдання для поганого коду. Якщо хтось хоче бути розумним і використовувати автоматичну генерацію коду, тоді він повинен витратити час, щоб переконатися, що створений код є хорошим кодом. Інакше в чому сенс? Це лише штовхає долар вниз, і коли справа доходить до виробництва коду, долар повинен зупинитися на розробнику, який його написав.
Код, створений генератором, ніколи не повинен підтримуватися вручну. Якщо це потрібно змінити, то генератор та / або його налаштування потрібно налаштувати і запустити знову. Враховуючи це, не має значення, чи є отриманий код незрозумілим та недокументованим, доки сам механізм генерації є кристально чистим. (Обов’язково задокументуйте факт генерації коду, а також де генератор і як він працює.)
Аналогія: хоча процесор мого комп'ютера завжди виконує машинний код, мені не потрібно нічого про це знати, доки я знаю, як створити цей машинний код за допомогою мови високого рівня та компілятора. Я чув, що GCC інколи виробляє машинний код підрозділу, але кого це цікавить, якщо він ідеально працює. Шари абстракції бази даних створюють SQL для роботи з двигуном БД, але кого цікавить, як виглядає цей SQL, доки рівень абстракції чіткий і працює?
При правильному використанні генератори коду, безумовно, можуть заощадити не тільки створення, але і витрати на обслуговування.
Генератор коду - це тип компілятора. Ви не турбуєтеся про те, наскільки гарний вихід компілятора, ви просто працюєте з вихідним кодом. Використовувати його, а потім змінювати вручну вихідний результат часто важче, ніж просто записати його з нуля у формі, зрозумілій людям, і означає, що ви не можете знову використовувати генератор коду без великої праці, оскільки вам доведеться застосувати ті самі зміни в той самий незрозумілий код точно.
Тому вони можуть бути добре, якщо вони є частиною процесу збирання, і документально підтверджені як такі. Тоді вхід до генератора - це вихідний код, і все, що він створює, є проміжними результатами, з якими не можна псуватися.
Однак якщо хтось використовує один для створення незрозумілого коду, який повинен бути використаний як джерело, то ця людина виробляє поганий код. Не має значення, чи людина виробляє поганий код механічно або вручну, це все ще поганий код, і у вас все ще є проблеми з якістю.
Тому потрібно ставитися до цього, як до будь-якого іншого розробника ріжучих куточків і писати поганий код. Я не знаю, як ти справишся з цим у своєму магазині.
З коментарів до інших відповідей, схоже, ви питаєте про стандарти команди, а не про генератори коду.
Інструмент генерації коду повинен бути включений у проект і повинен (де це доцільно) бути частиною процесу збирання. Прикладом може бути наша команда: ми використовуємо Subsonic 2.2, який у нас створює класи з об'єктів бази даних у збірці.
Exe, що робить це, перевіряється на SVN як частину проекту, щоб новий член команди міг отримати новий проект від svn та негайно створити його, не маючи зрозуміти, звідки беруться всі ці класи бази даних (у цьому прикладі ми навіть не включайте згенерований код у svn).