[Moscow.pm] Динамические возможности Perl :: помощь коллективного разума

Alexander Lourier aml на rulezz.ru
Вс Май 2 06:40:46 PDT 2010


В сообщении от Воскресенье 02 мая 2010 15:55:02 автор Андрей П. Ковбович 
написал:

> в приложении, работающем в режиме 24х7, есть группа объектов, которые
> занимаются какими-то своими делами, взаимодействуют друг с другом. С
> выходом новой версии приложения настала пора обновить часть классов
> (скажем обновить парочку методов, добавить несколько свойств в классе
> и в его экземплярах, поправить баги). Как это сделать в работающей
> системе?

Мы такое, кстати, на Перле делаем давно и успешно. При перезагрузке модулей 
через обычный do "file" все данные остаются, а весь код заменяется на новый. 
Быстро и надёжно. В Питоне это сложнее. Там, перезагрузив код классов из 
файла, мы просто в таблице имён сопоставляем имя класса с новой версией. А все 
объекты, что созданы от старой версии класса, ссылаются именно на старую и 
работают по-старому. Без костылей там seamless upgrade не сделать.

> 2 мая 2010 г. 13:47 пользователь Egor Makarov <makarov.e.g на gmail.com> 
написал:
> > Поговаривают, что такие возможности способствуют легкости реализации
> > DSL. Руби я давно не трогал, так что сходу простой пример не
> > сгенерирую.
> >
> > Ну вот moose же по сути тоже DSL. Так вот на руби нечто подобное делается
> > проще.
> >
> > 2 мая 2010 г. 10:01 пользователь Alexander Lourier <aml на rulezz.ru> 
написал:
> >> В сообщении от Пятница 30 апреля 2010 18:33:40 автор Akzhan Abdulin 
написал:
> >>> К сожалению, сам постулат неверен. До возможностей метапрограммирования
> >>> в Ruby далековато пока.
> >>>
> >>> Ведь само описание класса в Ruby является объектом и уже исполняется,
> >>> со всеми вытекающими.
> >>
> >> А скажите, пожалуйста, не флейма ради, есть ли практическая выгода от
> >> использования таких сложных возможностей языка? Зачем может
> >> потребоваться наследование от объекта с переопределёнными методами?
> >> Сможет, скажем, программист сопровождения найти ошибки в этом коде (и
> >> сколько у него времени на это уйдет), если разработчик к тому времени
> >> будет недоступен?
> >>
> >> В перле использование всякой экзотики обычно ограничивается хаками,
> >> которые полностью скрываются интерфейсом модуля. Никого особо не
> >> интересует, как внутри устроен профайлер, хотя там бывает страшно и
> >> вообще write-only. --
> >> Moscow.pm mailing list
> >> moscow-pm на pm.org | http://moscow.pm.org
> >
> > --
> > Moscow.pm mailing list
> > moscow-pm на pm.org | http://moscow.pm.org
> 
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> 


Подробная информация о списке рассылки Moscow-pm