metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-11-08 03:51 pm

Кодогенераторное

И таки несамочевидное решение "сделать одноразовую опердень по-человечески, с кодогенератором, F# и тестершами" показало свою полезность и адекватность в первый же день использования оной опердени.
Пользователи по результатам уточнили требования, а внутреннее тестирование обнаружило небольшой баг, что привело к необходимости добавить одно поле в таблицу. Если бы не кодогенерация - я бы сейчас искал и менял вручную с десяток мест, где нужно добавить это поле - объект данных, его дампы, dao-классы, sql-запросы, гриды для отображения, подписи к этим гридам и прочая, и прочая.
А так доработка даже с учетом того, что кодогенератор пока не умеет миграцию БД ни в каком виде, заняла 40 минут.

[identity profile] mend0za.livejournal.com 2010-11-08 04:14 pm (UTC)(link)
Из сегодняшнего митинга нас (н) с заказчиком (з):

н - А давайте что ли не будем менять ТЗ за неделю до формального срока окончания задачи и когда всё наконец поменяется - оформим отдельной задачей перехуячивание.
з - Да.., действительно ..., что это мы ...

[identity profile] gds.livejournal.com 2010-11-08 04:52 pm (UTC)(link)
поздравляю.

[identity profile] komarov.livejournal.com 2010-11-08 05:14 pm (UTC)(link)
очень круто

[identity profile] eric burglsan (from livejournal.com) 2010-11-08 06:44 pm (UTC)(link)
А так и должно быть, ибо это правильное решение в отличие от.

[identity profile] fraks-nsk.livejournal.com 2010-11-08 07:27 pm (UTC)(link)
Стесняюсь спросить - если миграция БД не предусмотрена - как внедряется новое поле?
Из ваших слов как-то думается что кодогенератор генерит новый скрипт для БД и потом в новую пустую базу данные переливаются? Или тупо ручками одно поле добавляли в уже существующую базу?

Когда-то делал попытки создать велосипед а-ля база Тенцера, но ниасилил. Выбросил на это дело ровно год и пришел к мысли - а нехер повторять функционал Delphi и сервера базы своими велосипедами - будет только хуже. Надо просто инструменты по назначению применять.

[identity profile] zamotivator.livejournal.com 2010-11-09 10:37 am (UTC)(link)
OpenSource будет?

[identity profile] nivanych.livejournal.com 2010-11-10 07:42 am (UTC)(link)
Всё меня мучает вопрос.
А вот если бы была агда2 под точканет, ви бы его пользовали, ребе? ;-)