metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-11-27 06:45 pm

Коньцепция

А вот скажите, существует ли где-нибудь в академических эмпиреях компутер сайенс такая вещь, как эволюционирующие типы?

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

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

[identity profile] sergiej.livejournal.com 2009-11-27 07:06 pm (UTC)(link)
Делается довольно просто в жабе.
В одном проекте у нас были динамические функции. Технологии Aspect Reflections.
Типа "объект" это лифчик, у него функция так-же называется но в конкретный момент (и на конкретный период, если надо) она начинает делать что-то другое.
Выглядело магически но работало.

[identity profile] mudasobwa.livejournal.com 2009-11-28 10:05 am (UTC)(link)
Аспектное программирование не привязано к языку никоим образом.

Аспекты — рулят рулем, это правда.

[identity profile] sergiej.livejournal.com 2009-11-29 01:53 pm (UTC)(link)
А что я говорил что только в жабе? Извиняюсь если это так прозвучало.