Коньцепция
А вот скажите, существует ли где-нибудь в академических эмпиреях компутер сайенс такая вещь, как эволюционирующие типы?
Т.е. к примеру, выпустили мы прогу-опердень, проработала она пару лет, база 10 гиг, данные набиты и тут "срочно-нах-вчера-постановление-вышло" нужно добавить какой-нибудь адский функционал по учету продаж лифчиков разного размера в зависимости от фаз луны, а у нас полей с фазой луны нигде нет и нужно его добавлять и при этом надеятся что все нахрен не поломается. Причем не поломается не только у нас при разработке, а и при миграции со старой версии на новую.
Так вот, тут бы не помешала бы какая-нибудь жосткая проверка корректности этого дела, аналогичная статической типизации, но чтобы до часа Ч типы и функции был одни, а после - другие, да еще с обязательной проверкой что для всех данных уже существующих в системе есть корректные функции миграции.
Т.е. к примеру, выпустили мы прогу-опердень, проработала она пару лет, база 10 гиг, данные набиты и тут "срочно-нах-вчера-постановление-вышло" нужно добавить какой-нибудь адский функционал по учету продаж лифчиков разного размера в зависимости от фаз луны, а у нас полей с фазой луны нигде нет и нужно его добавлять и при этом надеятся что все нахрен не поломается. Причем не поломается не только у нас при разработке, а и при миграции со старой версии на новую.
Так вот, тут бы не помешала бы какая-нибудь жосткая проверка корректности этого дела, аналогичная статической типизации, но чтобы до часа Ч типы и функции был одни, а после - другие, да еще с обязательной проверкой что для всех данных уже существующих в системе есть корректные функции миграции.
no subject
В одном проекте у нас были динамические функции. Технологии Aspect Reflections.
Типа "объект" это лифчик, у него функция так-же называется но в конкретный момент (и на конкретный период, если надо) она начинает делать что-то другое.
Выглядело магически но работало.
no subject
http://www.mtholyoke.edu/~blerner/evolution/evolution.html
http://www.ics.uci.edu/~arcadia/system_pages/tess.html
http://portal.acm.org/citation.cfm?id=680027
На мой взгляд, все равно это миграция, реимплементация скорее со сменой платформы, и надо полное тестирование фич.
no subject
no subject
Я этим классом программ занимаюсь лет 13 уже, и конца края этому не видно :)
no subject
Спасибо за объяснение )
no subject
no subject
no subject
no subject
no subject
С данными вот сложнее. Если идёт ввод `задним числом` то надо дёрнуть все последующие `конвертации`. Если данные непротиворечивы - то всё просто, а если противоречивы - то две копии хранить, хуле.
no subject
no subject
no subject
Аспекты — рулят рулем, это правда.
no subject
no subject
no subject
А для обновления на лету передаются новые обработчики для основных циклов каждой задачи. В новом обработчике можно создать новые записи в базе и никакой миграции не понадобится.