![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Кто какие модули для генерации классов в Perl использует? Ищу подходящий модуль.
З. Ы. прикрутил бы голосовалку, да боюсь не учесть всех модулей, а отредактировать голосование нельзя. |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
хотя бы список модулей для генерации классов привели
|
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
и д.р. Это сообщение отредактировал(а) Logo - 18.2.2010, 16:51 |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
Moose, конечно. MooseX:
![]() |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Moose вроде бы не поддерживает закрытые методы.
Это сообщение отредактировал(а) Logo - 19.2.2010, 12:43 |
|||
|
||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
Я не знаю что такое закрытые методы (private, public ?), но кроме Moose просто нет вариантов. Он стал стандартом для многих крупных проектовтипа Catalist, DBIx::Class , так что пользоваться им можно. В MooseX методы есть - MooseX::MethodPrivate например, но пользоваться можно ли не факт, я нарывался на проблемы с отладчиками и даже с тривиальными редакторами в части подсветки и автоформатирования.
И ещё один сюрприз - если навороты над Moose делать будут потери в производительности. Обёртки, например, в 5 раз могут замедлить выполнение функции. Это сообщение отредактировал(а) mvsgt - 19.2.2010, 13:54 |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Да, private, protected... |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Logo,
если вы пишете веб-прогармму, то может быть лучше catalyst использовать, но только в него входит очень много модулей (возможно лишних), там есть похожие фремворки на catalyst, которые по легче чем он: 1) mojo 2) Mypole 3) и другие Это сообщение отредактировал(а) gcc - 20.2.2010, 12:55 |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
В катализе вроде бы тот же Moose используется... Вообще сабж о способах создания классов.
|
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Logo,
в каталисте есть контроллеры, в которых есть атрибуты методов для "диспатча"... там есть различные атрибуты приват, локал, глобал и т.д. уже готовые... в моделях (обычных классах) можно писать по своему как угодно, возможно там нужно атрибуты использовать если модели пересекаються друг с другом вызываються, НО как правило эти модели вызываються в котроллерах... (просто инициализируються там) вообще moose/mouse*X не обязательно там использовать... (просто если мы должны наследоватся от какого-то куска кода в каталисте написаном на moose, то по-моиму нужно использовать только moose... как правило наследоватся от какого-то куска кода не требуется, так как движок (каталист) уже написан...) приватные методы можно почеркивать, так обозначать как приватные
Это сообщение отредактировал(а) gcc - 27.2.2010, 01:29 |
|||
|
||||
gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Logo,
нашел во фреймворке интересный вариант движка Catalyst::DispatchType::Chained распределенное ООП какое-то своеобразное... записать так:
и методы будут вызыватся так, друг за другом, как роли... красиво получается
в других языках, ни в java, ни в php такого не видел... Это сообщение отредактировал(а) gcc - 5.3.2010, 07:32 |
||||
|
|||||
mvsgt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
такое есть не только в перле, например jQuery так построен и так можно, в принципе, любой фреймворк организовать, но не всегда это хорошо - игры с Moose могут закончиться проблемпми с отладкой и производительностью. С отладкой - так как код, который реально выполняется, не имеет ничего общего с тем, что можно увидеть в отладчике (это не фильтры), а на организацию украшений уходит куча ресурсов.
|
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
наверное, т.е. кроме как в mod_perl?
а в cgi оно сильно медленно будет? но не обезательно же все сразу модули mooseX* запускать... ? вот есть какие-то демоны можно писать http://search.cpan.org/~perigrin/MooseX-Da...eX/Daemonize.pm в ООП как видно удобно но такого как moose в других языках мало где есть (именно такие БОЛЬШИЕ возможности), т.е. исходя их этого обезательности использования moose в обычных скриптах (или не больших программах) не вижу... а в catalyst в моделях его можно... Это сообщение отредактировал(а) gcc - 8.3.2010, 11:46 |
|||
|
||||
Vaneska |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 15.3.2005 Где: Москва Репутация: 3 Всего: 4 |
Альтернатива Moose - Mouse.
По сути тот же Moose только заново написанный и не все из нативного муза работает. Но производительность на порядок лучше --------------------
http://isokolov.blogspot.com/ |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Даже через чур большие... а элементарного - закрытых методов - нет. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |