мне видится решением поместить в обработчик сабу с нужными параметрами и на этапе загрузки сгенерить обертки в зависимости от атрибутов методов обработчика.
31 марта 2015 г., 3:31 пользователь PEF Secure <[email protected]> написал: > 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 > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
