[Moscow.pm] get own source code

Andrey Kovbovich akovbovich на gmail.com
Пн Мар 30 17:51:01 PDT 2015


мне видится решением поместить в обработчик сабу с нужными параметрами и на
этапе загрузки сгенерить обертки в зависимости от атрибутов методов
обработчика.

31 марта 2015 г., 3:31 пользователь PEF Secure <pef-secure на yandex.ru>
написал:

> On Monday, March 30, 2015 21:01:36 Maxim Vuets wrote:
>
> > Как по мне это плохая идея. А аргументация слабая и поверхностная.
>
> Есть очень много плохих идей написанных "правильно". Аргументации, кроме
> наличия у меня положительного опыта, я не приводил, поэтому согласен, она
> слабая.
>
> > Конечно, это только ваше дело что и как использовать. И вы, как я
> > понял из прошлого ответа, не очень расположены обсуждать основной
> > вопрос, потому я не буду продолжать.
>
> Я мог бы обсудить что-то, поддающееся обсуждению. C-like макросы понятно
> будут
> выглядеть ужасно, поэтому используется Filter::Simple.
>
> Ладно, попробую, если не получится, свернусь. Существуют шаблонные куски
> кода,
> они небольшие, выполняют какие то проверки и должны заполнить значения
> каких-
> то переменных, которые используются в дальнейшем в основном алгоритме.
> Такие
> куски кода, я считаю, удобно написать один раз, не в виде функций,
> поскольку
> этим функциям придётся передавать множество аргументов, а их возвращаемые
> значения копировать туда-сюда или хешем -- это всё засоряет текст,
> замыливает
> глаз и мешает читать основной код. В итоге у меня получается система
> макросов,
> которые скрывают это всё, остаётся только смысл выполняемого действия.
>
> Например, как может выглядеть обработчик, отвечающий на запрос получения
> информации о текущем клиенте, чтобы знать кому веб-сайт должен сказать
> "привет":
>
> handler get user info : prolog(get_user) {
>         return {
>                 name         => $user->name,
>                 email         => $user->email,
>                 last_login    => $user->last_login,
>                 result        => "OK",
>         };
>         end_handler;
> }
>
> В данном случае, handler создаёт обработчик "состояния" сессии в POE,
> псевдо
> атрибут prolog вызывает генерацию части get_user, которая создаёт объект
> $user
> из переданного ключа веб-сессии и добавляет информацию о пользователе в
> текущий контекст, чтобы можно было его добавить в лог, end_handler
> завершает
> формирование функции, создавая обработчик результата. Если развернуть эти
> несколько строк в получаемый результат, то там будет строчек на 20 больше.
> Писать подобные обработчики, на мой взгляд, быстрее и проще, чем на
> "настоящем
> перле". Читать и проверять код тоже. Ещё плюс в том, что это ничего не
> стоит с
> точки зрения производительности, код генерируется один раз на этапе
> компиляции. Конкретно в данном случае, удобно видеть какие запросы требуют
> авторизованного пользователя.
>
> Побочный эффект такого "псевдо-языка" ещё в том, что когда я решил менять
> POE
> на EV+pre-fork, в коде проектов не придётся ничего менять, всё полностью
> совместимо.
> --
> PEF Developer
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150331/cf585887/attachment-0001.html>


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