[Kiev-pm] MVC::Neaf: Not Even A Framework

Alex Varyanick q at cono.org.ua
Fri Dec 2 07:38:21 PST 2016


в сторону статики ++идеи:
1. X-Accel-Redirect (это для nginx проксирующего, и поддержку других прокси
веб серверов), т.к. сказать унифицировать
2. empty_gif -> _.gif

2016-12-02 17:23 GMT+02:00 Konstantin Cherednichenko <
dshadowukraine at gmail.com>:

> Пример: Mojolicious::Plugin::OpenAPI
>
> Или уже готовая реализация Raisin
>
> Все смотреть на metacpan...
>
> On Dec 2, 2016 16:54, "Konstantin S. Uvarin" <khedin at gmail.com> wrote:
>
>> Приветствую.
>>
>> Как какой? Не догоню, так согреюсь! Там полдюжины ссылок на prior work, и
>> это я ещё забыл Catalyst и PSGI, на которые тоже смотрел в процессе.
>>
>> А вот про OpenAPI хотелось бы подробнее, пока что нагуглил вот что:
>>
>> https://metacpan.org/pod/OpenAPI - какая-то ещё не написанная
>> спецификация в версии 0.001
>> https://vk.com/dev/openapi - API вконтакта.
>>
>> А Вы что имели в виду?
>>
>> С уважением,
>>
>>
>> 2016-12-02 16:45 GMT+02:00 Konstantin Cherednichenko <
>> dshadowukraine at gmail.com>:
>>
>>> IMHO Лучше смотреть в сторону OpenAPI... Какой смысл изобретать
>>> велосипед с роутами и валидацией данных?
>>>
>>> On Dec 2, 2016 16:40, "Konstantin S. Uvarin" <khedin at gmail.com> wrote:
>>>
>>>> Приветствую всех!
>>>>
>>>> Сегодня я бы хотел представить веб-фреймворк на перл 5 собственного
>>>> сочинения, Ниф (Not Even A Framework). Написан он больше для
>>>> самообразования, т.к. и так их как собак нерезаных, но мне кажется, в нём
>>>> есть некие здравые идеи. Суть такова:
>>>>
>>>> 1. Приложение разбивается на маленькие процедуры-хэндлеры, привязанные
>>>> к пути в URI (см. тж. https://metacpan.org/pod/Dancer )
>>>>
>>>> 2. Хэндлер получает на вход объект запроса, из которого потом достаются
>>>> параметры, куки, заголовки и т.д. (см. тж.
>>>> https://metacpan.org/pod/Kelp )
>>>>
>>>> 3. Параметры и куки нельзя достать без валидации, например, при помощи
>>>> регулярного выражения:
>>>>
>>>>   $req->param( foo => qr/\d+/ );
>>>>
>>>> См. тж. perl -T
>>>>
>>>> В качестве альтернативы есть самовалидирующиеся формы на базе
>>>> Validator::LIVR или самописного каличного движка (но ЛИВР лучше).
>>>>
>>>> См. тж. https://metacpan.org/pod/Validator::LIVR и
>>>> https://metacpan.org/pod/Data::CGIForm
>>>>
>>>> 4. Хэндлер может вернуть ссылку на хэш с какими угодно параметрами,
>>>> которая затем передаётся в шаблонизатор для рендеринга. На данный момент
>>>> поддерживается Template::Toolkit и JSON/JSONP
>>>>
>>>> Также есть ограниченный набор ключей с минусом, которые используются
>>>> для управления самим фреймворком - -template, -status и т.п
>>>>
>>>> 5. Хэндлер может выбросить исключение: die 404 - легальный способ
>>>> вернуть настраиваемую страницу not found. Все нормальные исключения (не
>>>> трёхцифренные и не специальные объекты самого Neaf) трактуются как error
>>>> 500.
>>>>
>>>> 6. Один и тот же код может в неизменном виде запускаться как cgi, psgi
>>>> и под Apache2 + mod_perl (с некоторым бубном). Также поддерживается дебаг
>>>> из командной строки:
>>>>
>>>>    perl myapp.pl --help
>>>>    perl myapp.pl --list
>>>>
>>>> 7. Кроме этого есть поддержка статических страниц (не надо держать
>>>> отдельно нормальный веб-сервер, чтобы проверить CSS или логотип), сессий в
>>>> несколько недоделанном виде (планируется улучшение), отложенные действия,
>>>> выполняемые после запроса, ну и по мелочи ещё.
>>>>
>>>> Пример кода:
>>>>
>>>>     use strict;
>>>>     use warnings;
>>>>     use MVC::Neaf;
>>>>
>>>>     MVC::Neaf->route( "/" => sub {
>>>>         my $req = shift;
>>>>
>>>>         return {
>>>>             -template => \'Hello, [% name %]!',
>>>>             -type     => 'text/plain',
>>>>             name      => $req->param( name => qr/\w+/, "Stranger" ),
>>>>         },
>>>>     });
>>>>
>>>> На каждую фичу есть небольшой пример, они же используются как
>>>> дополнительные смоук-тесты к 80% покрытию юнит-тестами. см.
>>>> https://github.com/dallaylaen/perl-mvc-neaf/tree/master/example
>>>>
>>>> Собственно фреймворк:
>>>>
>>>> https://metacpan.org/pod/MVC::Neaf
>>>>
>>>> Буду рад обратной связи, критике, багрепортам и запросам новых фич (см.
>>>> тж. https://github.com/dallaylaen/perl-mvc-neaf/blob/master/TODO )
>>>>
>>>> С уважением,
>>>>
>>>> --
>>>> Konstantin S. Uvarin
>>>> jabber: see <from>
>>>> skype: kuvarin
>>>> http://github.com/dallaylaen
>>>>
>>>> _______________________________________________
>>>> Kiev-pm mailing list
>>>> Kiev-pm at pm.org
>>>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>>>
>>>>
>>> _______________________________________________
>>> Kiev-pm mailing list
>>> Kiev-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>>
>>>
>>
>>
>> --
>> Konstantin S. Uvarin
>> jabber: see <from>
>> skype: kuvarin
>> http://github.com/dallaylaen
>>
>> _______________________________________________
>> Kiev-pm mailing list
>> Kiev-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>
>>
> _______________________________________________
> Kiev-pm mailing list
> Kiev-pm at pm.org
> http://mail.pm.org/mailman/listinfo/kiev-pm
>
>


-- 
Varyanick I. Alex
skype: cono..
q at cono.org.ua
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/kiev-pm/attachments/20161202/09360356/attachment.html>


More information about the Kiev-pm mailing list