![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
||
|
DaemonSuw |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
Заинтересовался модулем под названием Moose
http://habrahabr.ru/blogs/perl/59512/ - небольшой блог на русском А кто нибудь из тут присутствующих использует его в своих проектах (тест, продакшен), на первый взгляд - вещь то стоящая - полноценное ООП на перл ;)... и ваше мнение? стоит юзать? скорость тут: http://pichis-blog.blogspot.com/2009/02/ho...w-is-moose.html Это сообщение отредактировал(а) DaemonSuw - 19.5.2009, 16:23 |
|||
|
||||
xoma |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 4.4.2007 Репутация: нет Всего: нет |
Сейчас ставил последнюю версию Catalyst (с ним пока не работал), так вот, в качестве одной из зависимостей он тянет как раз Moose. Так что наверное каталист уже использует или планирует в ближайшее время перейти на Moose.
|
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Для проектов "с нуля" использовать можно, возможно, даже нужно.
По идее, таким же образом можно "обернуть" legacy-код, чтобы придать ему свежести) Но что-то мне подсказывает, что себе дороже получится. -------------------- Died at Life.pl line 21 |
|||
|
||||
DaemonSuw |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
xoma, да вы правы новая версия каталиста заточена под Moose... я думаю не спроста)))
delta list ;)
KSURi, опыта большого нету, но рискну спросить, - а что мешает продолжать писать уже с помощью Moose ;0)... ведь обратная совместимость есть, то есть все методы мы отнаследуем, а дальше юзать и писать по полной ооп парадигме... и потихоньку рефакторить тяжелое наследство системы... Конечно у системы появится 2 стиля кодирования так сказать до и после)... но это ведь в конце пропадет, если заставлять себя рефакторить старые классы... Это сообщение отредактировал(а) DaemonSuw - 20.5.2009, 12:30 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
тоже интересно, а в чем приемущество?
что не хвататет в обычном ООП + Ассессоры и т.д. чтобы его использовать? там есть еще много други модулей и mooseX, но оно как-то на обычный php похоже, только по другому сделано... Это сообщение отредактировал(а) gcc - 29.7.2009, 03:16 |
|||
|
||||
chorny |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.7.2009 Где: Молдавия Репутация: нет Всего: нет |
Преимущество в простоте и читабильности. Также Class::MOP даёт возможность полноценной интроспекции. Я использовал в работе упрощённый вариант - Mouse. Кстати роли есть ещё только в Perl 6 и Smalltalk. |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
понятно, а есть ли где-то реальная программа с moose чтобы ее скачать и посмотреть исходники?
|
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
gcc, тонны кода есть в блогах учавствующих в Iron Man.
chorny, роли - это ведь по сути mixin. Так что можно сказать, что и в они Python есть, и в Ruby. -------------------- Died at Life.pl line 21 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
KSURi,
http://www.google.com.ua/#hl=uk&source...f607cbc1d1ce7ba 1) где это? дайте ссылку? хотел исходники посмотреть 2) и кто видел на каталисте среднюю или большую программу? я нашел только одну... 3) еще хотел спросить где есть дискусии англоязычные там где много народа, никто не участвует в таких? Это сообщение отредактировал(а) gcc - 21.9.2009, 21:46 |
|||
|
||||
chorny |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.7.2009 Где: Молдавия Репутация: нет Всего: нет |
А mixin по сути - это множественное наследование. Но разный подход: роли позволяют делать более строгую проверку и переименование. Кроме того их можно применять динамически. |
|||
|
||||
KSURi |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
гуглить на iron man challenge+perl
http://dev.catalystframework.org/wiki/cata...poweredsoftware
практически у любого крупного проекта есть список рассылки, адрес обычно можно найти на оф. сайте или в документации -------------------- Died at Life.pl line 21 |
||||
|
|||||
chorny |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.7.2009 Где: Молдавия Репутация: нет Всего: нет |
perlmonks, stackoverflow, use.perl.org, irc://irc.perl.org , irc://irc.freenode.net/#perl , списки рассылки модулей и проектов CPAN и др., news://nntp.perl.org и много других мест |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
понятно по гуглил нашел блоги, я имел ввиду средние или большие программы на moose.... на catalyst нашел несколько, но мало, несколько ссылок не работают Добавлено через 45 секунд chorny, я не люблю это IRC или рассылки, обычных форумов нету? |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
У меня довольно ответственная система в продакшне на Moose (кроме автогенерируемых файлов - 82 .pm, >400 килобайт кода с комментариями). Но я не очень им доволен, хотя если сравнить голый перл и Moose - это земля и небо.
DBIx::Class на Moose, кстати. И некоторые другие на него переходят. Потери в производительности посчитать трудно, так как многим вещам аналогов при обычном подходе нет. Например, проверка параметров функций - Param::Validate превратился в гораздо более мощный инструмент
Плюс контроль за переменными класса - кто знает, сколько из-за его отсутствия остаётся спящих ошибок. А вообще вся предесть Moose проявится только в MooseX : : Declare и подобных модулях, но они, скорее всего, никогда в продакшн не выйдут. Это сообщение отредактировал(а) mvsgt - 21.9.2009, 23:59 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
да надо попробовать... я только что посмтрел программу на moose, но ничего особенного там не увидел...
интересно бы на реальных примерах увидеть преимущество... Это сообщение отредактировал(а) gcc - 21.9.2009, 23:58 |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
может кто-то обяснить про Role в moose?
http://search.cpan.org/~drolsky/Moose-0.91...les/Recipe1.pod или я не понял что-то или я не понял зачем это надо, как буд-то какой-то бессмысленный набор слов в документации... http://www.gossamer-threads.com/lists/catalyst/ Это сообщение отредактировал(а) gcc - 22.9.2009, 22:54 |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
У меня есть в одном месте MX::Declare с мульти-методами (не самая важная часть) в продакшене. В принципе не жалуюсь (только одно нарекание - почему-то часто варнинги пишет в логи, пока не разобрался как убрать). Секундная задержка видна при старте сервера, в остальном различий не заметил. Это сообщение отредактировал(а) KSURi - 22.9.2009, 09:54 -------------------- Died at Life.pl line 21 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
подскажите какая отладка есть для moose??
Data::Dumper НЕ смотрит объект, там используется "делегирование" между классами
в google не нашел http://www.google.com.ua/#hl=uk&ei=kjG...18c551f15cdb9b3 есть только для ролей http://search.cpan.org/~fayland/MooseX-Dum...ooseX/Dumper.pm Это сообщение отредактировал(а) gcc - 23.9.2009, 17:38 |
|||
|
||||
ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, а что Вам
должен показать? Объект-то ведь $c->request. Попробуйте
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
gcc |
|
||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ginnie,
но не видно }, 'HTTP::Headers' ),
тоже самое
|
||||||||
|
|||||||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, как это не видно HTTP::Headers? А это что?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ginnie, это вывод отладки после print Dumper($c->request);
там надо наверное как-то по другому в дампер передать.... в исходниках каталиста сложно разобратся, я не вижу объект класса HTTP::Headers я думал в что $c или $self, но не видно... там метода Headers Это сообщение отредактировал(а) gcc - 23.9.2009, 18:27 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, я, вероятно, как-то непонятно объясняю. Класс HTTP::Request отнаследован от HTTP::Message. У HTTP::Message есть свойство headers, значением которого является объект класса HTTP::Headers. Метода, возвращающего этот объект в классе HTTP::Message нет. Поэтому единственный способ его отдельно посмотреть дампером
Что я теперь непонятно объяснил? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
gcc, извините, просто не могу разобратся... я забыл написать что хочу увидеть X-Forwarded-For все остальное с ним... (может там что-то другое есть или по другому называется!!)
(я посмотрел исходники $c->request->address он просто определяется по-моиму когда прокси, то определяется айпи из Forwarded) $c->request->header('X-Forwarded-For')
почему в отладке не видно X-Forwarded-For, ip и host ? Добавлено @ 18:42 ginnie, спасибо, может там убрано из класса это (X-Forwarded-For, ip и host) скорее всего посмотрю еще исходники.... Это сообщение отредактировал(а) gcc - 23.9.2009, 18:45 |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, X-Forwarded-For не видно потому, что он Вашим клиентом не передается. Он передается иногда при работе через proxy-сервер (хотя по идее, proxy должен ставить заголовок Via).
IP в заголовках тоже быть не должно, т.к. он определяется из соединения:
Это сообщение отредактировал(а) ginnie - 23.9.2009, 19:51 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
||||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
У vim с этим проблем нет) Perltidy не пользуюсь. Вот проблемы с отладкой, это да - большой минус. Причем это касается и просто Moose, без Declare. -------------------- Died at Life.pl line 21 |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
А у меня стиль набора текста - набирать как придётся, потом нажимать Control-F и всё приводится к стандартному виду. Без этого не получается.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |