The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз web-фреймворка Mojolicious 2.0, продолжающего развитие Catalyst

18.10.2011 17:10

Представлен второй стабильный релиз фреймворка Mojolicious, предназначенного для создания web-приложений на языке Perl с использованием парадигмы MVC (Model-View-Controller). Проект развивается автором популярного фреймворка Catalyst и позиционируется как попытка перевода на новый уровень средств web-разработки для языка Perl, учитывая прошлый опыт и адекватно поддерживая современные тенденции в web-разработке. С одной стороны Mojolicious достаточно прост в освоении (для незамысловатых проектов доступен упрощённый вариант Mojolicious::Lite), а с другой - построен на пике современных технологий, например, поддерживает WebSockets, Ajax, асинхронный ввод/вывод, RESTful-процедуры и т.п.

По заявлению основателя проекта, Mojolicious является попыткой возродить интерес к языку Perl среди разработчиков приложений, как было во времена появления модуля CGI. Пять лет назад в ответ на появление технологии Ajax был создан фреймворк Catalyst, в нынешнее время мир стоит на пороге революции технологий HTML5. Возможности браузеров возросли и ранее реализуемая на стороне сервера логика все больше переносится на клиентскую сторону. Появилось несколько принципиально новых подходов в работе web-приложений, таких как возможность организации полноценного двунаправленного обмена данными с сервером (WebSocket API), поддержка выполнения web-приложений в offline-режиме и более тесная интеграция JavaScript.

Изменения, отмеченные в версии Mojolicious 2.0:

  • Требования к минимальной версии Perl увеличены с 5.8.7 до 5.10.1. Использование некоторых конструкций, появившихся в новых версиях Perl, позволило заметно увеличить производительность;
  • Morbo - новый вариант встроенного в фреймворк web-сервера, идеально подходящего для использования в процессе разработки и отладки, так как он не требует перезапуска приложения после внесения изменений в код и может работать на любых платформах, включая Windows;
  • Встроенный web-сервер Mojo::Server::Hypnotoad, реализующий prefork-модель обработки запросов и предназначенный для развёртывания готовых проектов на Unix-системах, расширен в направлении упрощения настройки и адаптации под свои нужды. Из возможностей Hypnotoad также отмечается поддержка обновления Mojolicious, Perl и системных библиотек на лету, без остановки обслуживания запросов. Кроме того, Hypnotoad может распознавать заголовки X-Forwarded-For, X-Forwarded-Host и X-Forwarded-HTTPS при работе в роли бэкенда;
  • Использование высокопроизводительной библиотеки libev для обеспечения работы модулей обработки цикла событий (Event Loop) EV и AnyEvent;
  • Многие объекты теперь генерируют события, которые могут быть использованы для расширения возможностей Mojolicious;
  • Добавлен плагин Mount plugin для встраивания внешних Mojolicious-приложений в виде обработчиков заданных запросов;
  • Расширены возможности приложений, создаваемых по упрощённой схеме с использованием Mojolicious::Lite. Добавлена поддержка группировки секций (блок group), в зависимости от области их использования (например, можно отделить обработчики для закрытого интерфейса администратора и публично доступных сервисов);
  • Упрощённые средства тестирования приложений, использующих WebSocket.
  • Поддержка коллекций, упрощающих получение и разбор контента с внешних сайтов.

Особенности Mojolicious:

  • Поддержка из коробки: плагинов, шаблонов с возможностью вставки perl-операторов, подписанных cookies, I18N, полная поддержка unicode;
  • Встроенные механизмы управления сессиями;
  • Доступен отдельный фреймворк для тестирования web-приложений;
  • Чистый, легко портируемый и объектно-ориентированный API;
  • Пакет является самодостаточным и не требует для своей работы каких либо зависимостей, кроме Perl 5.10.1 (рекомендуется Perl 5.12+, кроме того некоторые опциональные функции могут потребовать установки дополнительных модулей из CPAN);
  • Встроенная реализация клиента и сервера для HTTP 1.1 и WebSocket, с поддержкой TLS, Bonjour, IDNA, Comet (длительный пулинг), chunking и multipart;
  • Несколько вариантов встроенного web-сервера: для тестирования, для промышленного использования для быстрого развёртывания. Сервер поддерживает организацию асинхронного ввода/вывода, epoll, kqueue и UNIX domain sockets. В простейшем случае для развёртывания web-проекта на базе Mojolicious достаточно наличия интерпретатора Perl. При этом фреймворк является многоплатформенным и поддерживает не только Unix-подобные ОС, но и Windows;
  • Автоматическое определение доступности режимов CGI, FastCGI и PSGI;
  • Встроенный парсер JSON и XML/HTML5 с поддержкой CSS3 селекторов.


  1. Главная ссылка к новости (http://blog.kraih.com/mojolici...)
  2. OpenNews: Представлен Mojolicious 1.0, MVC web-фреймворк на языке Perl от создателя Catalyst
  3. OpenNews: Анализ состояния разработки языка Perl
  4. OpenNews: Обзор развития web-фреймворков для Perl
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32069-perl
Ключевые слова: perl, web, mvc, mojolicious
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, fi (ok), 17:23, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а что, вещь интересная.

    правда посмотрел на свою версию - v5.8.8, да уж стареем :)

     
  • 1.2, Аноним (-), 17:46, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Класс. Много вкусностей. Объязательно нужна книга в духе "best practices", иначе предлагаемые решения так и останутся "вещью в себе" и народ пойдет строить велосипеды.
     
  • 1.3, anonym (?), 18:04, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    да, годная вещь, уже почти полгода на нем и разрабатываю, доволен
     
     
  • 2.4, Аноним (-), 18:11, 18/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >да, годная вещь, уже почти полгода на нем и разрабатываю, доволен

    Если не сложно подкиньте плз ссылку или название открытого проекта, написанного на Mojolicious 2.0. Сорцы будут очень кстати в изучении его.

     

  • 1.5, nagual (ok), 18:20, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вместо Hypnotoad лучше юзать Starman.
     
  • 1.6, Аноним (-), 18:37, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Очень sinatra напоминает.
     
     
  • 2.11, vasek (?), 01:03, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Очень sinatra напоминает.

    роутами, да, а так только Mojolicious::Lite на него похож, ну и в кредитсах это написано =)
    но эта идея растеклась почти во все молодые веб-фремворки и на питоне и руби и перле

     

  • 1.7, Аноним (7), 19:01, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    http://check-host.net как раз на Mojolicious написан, со всей внутренней архитектурой. Кстати, у Mojolicious есть свой event-loop - IOLoop.
    Да, прошло уже несколько лет с версий 0.9x. Уже и документация есть полноценная и вики. Очень хорошо, что фреймворк развивается.
     
  • 1.8, Cub (ok), 19:06, 18/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не флейма ради, а информации для: если для кого-то эта вещь новая, то прежде чем заняться ней серьёзно, почитайте статью Вячеслава Тихановского, одного из (бывших) core-разработчиков: http://showmetheco.de/articles/2011/1/why-i-chose-to-build-a-plack-framework-
     
     
  • 2.9, Cub (ok), 19:07, 18/10/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Линк побился, вот правильный: http://goo.gl/xSnDD
     
  • 2.10, vasek (?), 01:01, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотри, статья-то годная, да. Но это личный взгляд Вячеслава Тихановского, ему интересно было использовать Mojo, так сказать изнутри, но Ридель все делал по-своему, и никого ни о чем не слушал, в итоге появился этот пост и Вячеслав разрабатывает на том, что ему нравится. Ну а позиция Риделя вызвает уважение.

    У нас на модж куча проектов, проблем с обновлениями почти не ощущаем, единственное, потроха Mojo нужно использовать очень аккуратно.

     
  • 2.12, Pilat (ok), 01:40, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не такой он и core - разработчик, кстати.

    А статья о том, что не хочется ему писать в едином стиле - а хочется постоянно разрабатывать фреймворки. Ну пусть разрабатывает, кто против. Только где он возьмёт жлающих поддерживать кучу разностилевых фрцмворков? Сам будет всё делать?

     
  • 2.13, Аноним (-), 15:13, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Не флейма ради, а информации для: если для кого-то эта вещь новая, то прежде чем заняться
    >ней серьёзно, почитайте статью Вячеслава Тихановского, одного из (бывших)
    >core-разработчиков: http://showmetheco.de/articles/2011/1/why-i-chose-to-build-a...

    Очень кстати.
    Благодарю.

     

  • 1.14, Аноним (-), 17:53, 19/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я считаю, что писать веб на перле, используя имеющиеся фреймворки - бесполезная трата времени. Просто не тот уровень, нет тех компонент, которые стали де-факто стандартом.
    Где валидация ? Где ОRМ ? Где CRUD ? Без всего этого аналогичная задача на mojolicious буде выполняться дольше и неэффективнее, чем на Django, Yii, да и любом другом фреймворке подобного уровня.
    И реально есть только mojolicious и catalyst, остальные фреймворки либо заброшены, либо имеют еще меньше возможностей. Правда обилие зависимостей catalyst скорее всего не позволит развернуть его на типичном хостинге...
    Нужно гнаться не за тестированием, юникодом, хитрой архитектурой и плагинами, а за практической применимостью, потому что ее пока нет. На mojolicious можно написать что угодно, конечно, но это будет неконкурентоспособно по сравнению с любым php-фреймвокром или джангой с рельсами.
     
     
  • 2.15, Cub (ok), 18:18, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я считаю, что писать веб на перле, используя имеющиеся
    > фреймворки - бесполезная трата времени.

    Ну так не пишите. Такое впечатление, что вас кто-то заставляет.

    > Просто не тот уровень, нет тех компонент, которые стали де-факто стандартом.
    > Где валидация ? Где ОRМ ? Где CRUD ? Без всего этого

    Ну тоесть вы не знаете об их существовании, и делаете вывод (и утверждение), что ничего этого нет. Что ж, типично для анонимных аналитиков.

    > Нужно гнаться не за тестированием, юникодом, хитрой архитектурой и плагинами, а за
    > практической применимостью, потому что ее пока нет.

    Простите, а где её нет? У всех заинтересованных есть. У вас нет? Ну так поищите.

     
     
  • 3.17, Аноним (-), 21:14, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>Ну так не пишите. Такое впечатление, что вас кто-то заставляет.

    Я и не пишу, но предупреждаю других.

    >>Ну тоесть вы не знаете об их существовании, и делаете вывод (и утверждение), что ничего этого нет. Что ж, типично для анонимных аналитиков.

    Покажите мне все это в стандартной поставке Mojolicious. Я знаю что в cpan это есть но зачем мне тогда фреймворк , если можно все пол кускам собирать по цпану ? Плагины есть, но они поддерживаются как бог на душу положит, так что всерьез ан них рассчитывать не стоит.

    >>Простите, а где её нет? У всех заинтересованных есть. У вас нет? Ну так поищите.

    Простите, что за чушь вы написали ?

     
     
  • 4.22, Pilat (ok), 03:17, 08/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>>Ну тоесть вы не знаете об их существовании, и делаете вывод (и утверждение), что ничего этого нет. Что ж, типично для анонимных аналитиков.
    > Покажите мне все это в стандартной поставке Mojolicious. Я знаю что в
    > cpan это есть но зачем мне тогда фреймворк , если можно
    > все пол кускам собирать по цпану ? Плагины есть, но они
    > поддерживаются как бог на душу положит, так что всерьез ан них
    > рассчитывать не стоит.

    Вы писали про ORM - но ведь M сделан как раз в расчёте, что ORM будет использовать тот , кому это нужно - так как ОРМ совсем не очевидно полезная штука, а веса от неё прибавляется заметно. И стандартная поставка сделана намеренно с минимальными зависимостями - что тоже крайне хорошо. Поставить же из CPAN что нужно - просто.


     
  • 2.16, anonym (?), 19:42, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я считаю, что писать веб на перле, используя имеющиеся фреймворки - бесполезная трата времени. Просто не тот уровень, нет тех компонент, которые стали де-факто стандартом.

    писать подобное псто на опеннете - вот бесполезная трата времени

    > Где валидация ? Где ОRМ ? Где CRUD ?

    на cpan.org забанили?

     
     
  • 3.18, Аноним (-), 21:19, 19/10/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > писать подобное псто на опеннете - вот бесполезная трата времени

    Возможно, кто-то прочитав это сэкономит множество своего времени.

    > на cpan.org забанили?

    Я понял, что это есть на цпане, где это в фреймворке и из коробки ? Я вижу что у вас почасовая оплата и вас абсолютно не беспокоит во сколько влетят заказчику ваши эксперименты.


     
     
  • 4.19, anony (?), 00:56, 20/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ты программист или куда?
    У тебя есть код, тесты и документация, какие эксперименты, бери да пиши.

    CRUD, если есть мозг конечно, пишется для проекта буквально в касание, и я бы не доверил всяким кодо-генератором, а то потом народ на форумах, какое же УГ это похапе.

    Использование ORM - очень спорный вопрос, мой выбор - это толика консерватизма и SQL. Если нужна модель, опять же пишется в касание, нужен ORM, берешь с CPAN DBIx::Class, Rose::*, ORLite::* и используешь, для моджо и дансера точно плагины есть, в Каталисте ОРМ есть в поставке.

    > Возможно, кто-то прочитав это сэкономит множество своего времени.

    Боже мой, на чём?

     

  • 1.21, bruno (?), 17:47, 21/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Книжка хорошая нужна. И реальные примеры использования, А так нормальная штука.
    Юзаю Moolicious+MojoX::Redis
     
  • 1.23, midenok (?), 20:12, 19/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Требуется участие специалистов:

    http://open-imhonet.github.io

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру