Doomed to Wordpress

Serious Reflections During the Life of Jeremy Fisher

   

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavours
There's more than one way to view this weblog; try these flavours on for size.

  • index
  • circa 1993
  • RSS
  • Links
    These are a few links to my other sites.

  • Ставропигиальныя Пластинки
  • Анкылым
  • Русское Шрифтовое Зало
  • Gopher (Proxied)
  • More about Gopher
  •        

    2013/11/24 perl framework

    Нужны 2 движка, для нового ставропигиального сайта (поддержка noSQL пригодится) и для кассетного сайта (нужна простая обработка и валидация форм, поддержка простой SQL базы). (Можно ли для ставропигиального сайта задействовать scoop? Или это ненужное усложнение, привносящее зло интерактивности? scoop скорее для Бакунисты бы подошёл, коли на то пошло.)

    Mojolicious / Mojolicious::Lite — не нашёл, в чём между ними разница. Есть валидатор форм, не очень удобопонятный. Насколько я понял, там развитый server-side user agent и он годится скорее для сайтов с подгрузкой содержимого и отправкой форм на сторонние сайты, т.е. интеграция с соцсетями и прочий веб 2.0. Как я понял, есть всякие фичи для стриминга, многопоточного аплоада/даунлоада, вебсокеты и т.п. Модный фреймворк, позиционируется как Real-time web framework. Параметры форм доступны через $self->req->param, но неясно, можно ли как-то автоматизировать их проверку и сделать им какие-то описания или объявления.

    CGI::Builder, пишут, имеет поддержку валидации форм, в отличие от CGI::Application. Apache::CGI::Builder работает под mod_perl.

    CGI::Framework — есть примитивный механизм валидации, т.е. как в Масоне примерно, вручную всё пишешь, удобство в том, что это выделяется в отдельную функцию.

    CGI::Builder построен на CGI::Application, а Framework нет.

    И то и то, кажется, какие-то маргинальные фрэймворки. Непонятно, могут ли они что-либо кроме CGI.

    Titanium умеет валидацию форм через Data::FormValidator. Думаю, так можно и самому сделать. Titanium is simply a more user-friendly packaging of the mature CGI::Application framework and some useful plugins. У него вроде есть приличные средства отладки без веб-сервера. Он работает с FastCGI и mod_perl. Я так понимаю, при наличии Титаниума рекомендуется использовать его, а не чистый CGI::Application. Мне не нравится, что там используется HTML::Template (или TT через плагин). (Впрочем, их кажется использует всё, что происходит от CGI::Application или им инспирировано.) С DBI работает напрямую. В примерах CGI::Application сказано, что DBIx::Class тоже кое-где используется.

    Но в принципе, если бы не плохие темплейты и CGI-ориентированность, эти движки (основанные на CGI::Application) довольно простые и достойны внимания.

    Mason 2 это Moose, отпадает. Кроме того, это теперь сугубо темплейтный движок, вся веб-интеграция делается через Poet и PSGI. Соответственно и Poet отпадает. С другой стороны, пишут, что Moose не такой уж и страшно медленный (overhead at compile time), а напрямую с ним там работать не надо. В Поэте создаётся удобная структура каталогов для серьёзного проекта, но для маленького сайта это слишком.

    Catalyst все пишут, что слишком сложен и рассчитан на большие проекты. Не проверял.

    Dancer мне патологически не нравится название. Хотя в целом он довольно прост. Собственный темплейтный движок либо TT.

    Короче непонятно, что и делать, CGI::Application кажется логичнее всего, но темплейты не нравятся. Есть правда CGI::Application::Plugin::AnyTemplate, к-рый поддерживает Petal, но это тоже наверно перебор. Вроде у Титаниума есть возможность написать свой темплейтный плагин. Есть также CGI::Application::Plugin::Mason.

    Есть ещё Template::TAL (и HTML::AsSubs и Template::Declare, которые продолжают мою идею о ненужности работать напрямую с HTML в веб-приложениях, хотя у меня это скорее достигается за счёт чёткой логической структуры документа). Text::Template очень хорош. Petal поддерживает metal, а Template::TAL нет.

    По поводу ставропигиального сайта, как мы будем хранить данные и какие будут шаблоны? Самый простой вариант — хранить всё в виде текстовых файлов, отображать их в гофере и добавлять разметку в вебе. Раз никакой объектной базы не находится. Нужно продумать чёткую структуру каталогов для этих файлов или какой-то механизм тип moles, позволяющий держать несколько документов в одном файле. Так, нужно будет составлять список и брать метаданные всех релизов из всех файлов. Или всё-таки база?

    permanent link