В сообщении от Воскресенье 02 мая 2010 15:55:02 автор Андрей П. Ковбович написал:
> в приложении, работающем в режиме 24х7, есть группа объектов, которые > занимаются какими-то своими делами, взаимодействуют друг с другом. С > выходом новой версии приложения настала пора обновить часть классов > (скажем обновить парочку методов, добавить несколько свойств в классе > и в его экземплярах, поправить баги). Как это сделать в работающей > системе? Мы такое, кстати, на Перле делаем давно и успешно. При перезагрузке модулей через обычный do "file" все данные остаются, а весь код заменяется на новый. Быстро и надёжно. В Питоне это сложнее. Там, перезагрузив код классов из файла, мы просто в таблице имён сопоставляем имя класса с новой версией. А все объекты, что созданы от старой версии класса, ссылаются именно на старую и работают по-старому. Без костылей там seamless upgrade не сделать. > 2 мая 2010 г. 13:47 пользователь Egor Makarov <[email protected]> написал: > > Поговаривают, что такие возможности способствуют легкости реализации > > DSL. Руби я давно не трогал, так что сходу простой пример не > > сгенерирую. > > > > Ну вот moose же по сути тоже DSL. Так вот на руби нечто подобное делается > > проще. > > > > 2 мая 2010 г. 10:01 пользователь Alexander Lourier <[email protected]> написал: > >> В сообщении от Пятница 30 апреля 2010 18:33:40 автор Akzhan Abdulin написал: > >>> К сожалению, сам постулат неверен. До возможностей метапрограммирования > >>> в Ruby далековато пока. > >>> > >>> Ведь само описание класса в Ruby является объектом и уже исполняется, > >>> со всеми вытекающими. > >> > >> А скажите, пожалуйста, не флейма ради, есть ли практическая выгода от > >> использования таких сложных возможностей языка? Зачем может > >> потребоваться наследование от объекта с переопределёнными методами? > >> Сможет, скажем, программист сопровождения найти ошибки в этом коде (и > >> сколько у него времени на это уйдет), если разработчик к тому времени > >> будет недоступен? > >> > >> В перле использование всякой экзотики обычно ограничивается хаками, > >> которые полностью скрываются интерфейсом модуля. Никого особо не > >> интересует, как внутри устроен профайлер, хотя там бывает страшно и > >> вообще write-only. -- > >> Moscow.pm mailing list > >> [email protected] | http://moscow.pm.org > > > > -- > > Moscow.pm mailing list > > [email protected] | http://moscow.pm.org > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
