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

Date: 2010-11-08 07:38 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Для сложных случаев - я сравниваю старый и новый скрипт диффом и по разнице ручками делаю скрипт миграции. С генерацией занудных вещей типа "грохнуть в правильном порядке все зависимости от таблицы" и потом "создать все зависимости заново со всеми правами".
Для простых - в базу ручками - это одно место где нужно руками работать, а все остальное - запросы, классы, отчеты итд - генерируется.

И таки да - я тоже отказался от идеи повторять функционал существующих языков - это оказалось ненужным, неудобным, с протекающими абстракциями и медленным. Поэтому кодогенератор делает все точно так же как я бы это делал вручную - обычные таблицы, обычные поля, никакой рунтайм-интерпретации и EAV-моделей.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 27th, 2025 05:13 pm
Powered by Dreamwidth Studios