Кодогенераторное
Nov. 8th, 2010 03:51 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
И таки несамочевидное решение "сделать одноразовую опердень по-человечески, с кодогенератором, F# и тестершами" показало свою полезность и адекватность в первый же день использования оной опердени.
Пользователи по результатам уточнили требования, а внутреннее тестирование обнаружило небольшой баг, что привело к необходимости добавить одно поле в таблицу. Если бы не кодогенерация - я бы сейчас искал и менял вручную с десяток мест, где нужно добавить это поле - объект данных, его дампы, dao-классы, sql-запросы, гриды для отображения, подписи к этим гридам и прочая, и прочая.
А так доработка даже с учетом того, что кодогенератор пока не умеет миграцию БД ни в каком виде, заняла 40 минут.
Пользователи по результатам уточнили требования, а внутреннее тестирование обнаружило небольшой баг, что привело к необходимости добавить одно поле в таблицу. Если бы не кодогенерация - я бы сейчас искал и менял вручную с десяток мест, где нужно добавить это поле - объект данных, его дампы, dao-классы, sql-запросы, гриды для отображения, подписи к этим гридам и прочая, и прочая.
А так доработка даже с учетом того, что кодогенератор пока не умеет миграцию БД ни в каком виде, заняла 40 минут.
no subject
Date: 2010-11-08 07:38 pm (UTC)Для простых - в базу ручками - это одно место где нужно руками работать, а все остальное - запросы, классы, отчеты итд - генерируется.
И таки да - я тоже отказался от идеи повторять функционал существующих языков - это оказалось ненужным, неудобным, с протекающими абстракциями и медленным. Поэтому кодогенератор делает все точно так же как я бы это делал вручную - обычные таблицы, обычные поля, никакой рунтайм-интерпретации и EAV-моделей.