August 2010 Archives

На сайте Perl5doc.ru в разделе CPAN появился документ Mojolicious::Guides::Rendering, описывающий механизм рендеринга Mojolicious.

Кратко говоря, "рендеринг" - это преобразование данных из одного формата в другой.  В Mojolicious под этим термином подразумевается шаблонизация, генерация кодов состояния http, маршрутизация, работа с данными в формате JSON. Как эти технологии реализованы в Mojolicious, вы узнаете из документа Mojolicious::Guides::Rendering.

Документации Mojolicious на русском языке накопилось достаточно, хотя еще многое предстоит сделать. Стоит отметить всех, кто принял посильное участие в переводе документации Mojolicious:

Mojo::Base: zhdinar
Mojolicious:  zhdinarMinoruvti .
Mojolicious::Guides::Cheatsheet:  vtiДмитрийklik-klik.
Mojolicious::Guides::CodingGuidelines: alexey-rusaleevxomavtiДмитрийFoxcool
Mojolicious::Guides::Cookbook: ДмитрийshoorickHeavyAnykeyFoxcoolzhdinarvti
Mojolicious::Guides::Rendering: xomavtiСергейkorshakДмитрийМаксим Вуецkobanklik-klikdionysDim_K

Надеюсь, число участников будет только увеличиваться :)

Эта статья является урезанной версией оригинального перевода на сайте translated.by.
Оригинальная документация: Mojolicious::Guides::Cookbook.pod.
Данный перевод также внесен в раздел документации фреймворка Mojolicious на сайте perl5doc.ru под названием Mojolicious::Guides::Cookbook


РАЗВЕРТЫВАНИЕ

Запуск Mojolicious и Mojolicious::Lite приложений на различных платформах.

Встроенный сервер

Mojolicious имеет ультрапортативный HTTP 1.1 совместимый web-сервер. Обычно он используются при разработке, но он также достаточно стабильный и быстрый для небольших и средних приложений.

Другим большим преимуществом является то, что он поддерживает из коробки TLS и ВебСокеты

Встроенный Prefork Сервер

Чтобы допускать масштабирование с несколькими процессорами (ядрами) и снизить потери производительности из-за блокирующего (медленного) API, встроенный веб-сервер имеет многопроцессовый preforking режим. Это не работает на Windows из-за оптимизаций для UNIX, но это достаточно быстро и масштабируемо для больших приложений.

Nginx

Одним из наиболее популярных способов установки в настоящее время является встроенный preforking web сервер за инвертированным прокси Nginx. Также вожможно использование доменных сокетов UNIX. Встроенный web-сервер Mojolicious, конечно, так же их поддерживает.

Интересным побочным эффектом является то, что можно параллельно запустить несколько серверов, позволив им совместно использовать один и тот же сокет и файл блокировки. Это позволяет осуществлять так называемое горячее развёртывание, означающее полное отсутствие простоя во время обновления программ.

Apache/CGI

CGI поддерживается «из коробки», и ваше приложение на Mojolicious автоматически определит, что оно запущено как CGI-скрипт.

Apache/FastCGI

FastCGI тоже поддерживается «из коробки», и ваше приложение на Mojolicious автоматически определит, что оно запущено как FastCGI-скрипт.

PSGI/Plack

PSGI - это интерфейс между Perl веб-фреймворками и веб-серверами. Plack - это Perl модуль и набор разработчика, который содержит связующее ПО PSGI, вспомогательные инструменты и адаптеры для веб-серверов. На создание PSGI и Plack вдохновили Python WSGI и Ruby Rack. Приложения Mojolicious смехотворно просто разверачивать с помощью Plack.

Apache/mod_perl (PSGI/Plack)

mod_perl это хороший пример PSGI адаптера без использования plackup, помните что установка переменной окружения PLACK_ENV необходима Mojolicious для автоматического обнаружения PSGI.

IIS6.0/FastCGI

Мы не советуем использовать IIS, ибо это страшно нестабильный веб-сервер. Избегайте работы с ним, если это возможно.

Развлекаемся

Хаки, которые быть может и не очень полезны, но зато интересны! :)

Hello World

Если экономить на каждом байте, то самое маленькое Hello World приложение, написанное на Mojolicious::Lite, имеет следующий вид:

use Mojolicious::Lite;
get '/' => {text => 'Hello World!'};
app->start;

Это работает, потому что автоматический рендеринг срабатывает, даже если код фактически не выполняется маршрутизатором, рендерер только забирает значение text из stash и формирует ответ.

Statistic

About this Archive

This page is an archive of entries from August 2010 listed from newest to oldest.

July 2010 is the previous archive.

February 2011 is the next archive.

Find recent content on the main index or look in the archives to find all content.