Вышел новый релиз web фреймворка Yesod

Ямилов Сергей, March 4, 2012

9-ого февраля сего года вышел 0.10 релиз фреймворка Yesod. Для тех кто о нем никогда не слышал – рассказываю. Есод – это бесплатный фреймворк предназначенный для быстрого построения проектов с высокой нагрузкой. В качестве языка программирования используется Haskell. Да-да, вы не ослышались именно тот о котором в последнее время так много упоминают. Есод будет для вас хорошим выбором, если для вас выполняются данные условия:

  1. Вашему проекту необходима замечательная асинхронность ввода-вывода и производительность – быстрее, чем node.js и в некоторых случая даже быстрее чем приложения на C/C++ (благодаря технологии мемоизации вычислений)
  2. Нужны хорошие возможности по расспаралеливаню вычислений
  3. Нужен низкий порог дефектов кода – без необходимости писать огромное количество тестов
  4. нужна высокая безопасность ваших приложений (большинство проблем безопасности не представляется возможными в хаскеле)
  5. Вы опытный программист Haskell или хотите выучить новый язык программирования


Основная цель этого релиза была перейти на кондуиты (каналы). А также некоторые незначительные моменты в области персистенции. Предпологается что это релиз-кандидат версии 1.0.

Вот список изменений:

Persistent:

  1. Новый интерфейс rawSql
  2. Новый MySQL бэкенд, реализация CouchDB бэкенда в процессе
  3. Поддержка встроенных записей, карты, списки, и наборы

Shakespeare:

Теперь используется новый addDependentFile для GHC 7,4. Это означает, что когда вы вносите изменения в шаблоны шекспира, они будут автоматически перекомпилироваться при сборке проекта.

shakespeare-js:

Теперь компиляция Coffeescript выполняется во время сборки проекта. Эта стратегия в настоящее время поддерживается библиотекой шекспир: и если шаблону необходимо выполнить внешнюю программу, это будет сделано один раз во время компиляции. Благодаря этому Coffeescript является замечательным выбором. Coffeescript добавляет большую наглядность Javascript скриптам, что избавляется от противоречий и добавляет удобства.

WAI:

Были сделаны большие изменения для перехода на кондуиты. Было также много мелких исправлений ошибок и улучшений для увеличения производительности. RequestLogger интерфейс был усовершенствован, и ошибка в быстром логгере была исправлена. В настоящее время ставятся эксперименты со способами сделать более эффективной передачу данных в WAI. Одним ограничивающим фактором было невозможность передавать произвольные данные. В WAI теперь есть набор методов для достижения этой цели, которые используют хранилище пакетов.

Yesod:

Опять же, в центре внимания этого выпуска был переключатель каналов (кондуитов). Для пользователя это отображается в изменении конфигурации, и обработки исключений. С переходом на кондуиты был полностью удален обработчик liftIOHandler.

Добавлена настройка Approot, которая генерирует URL. Теперь у вас есть возможность изменять URL на основе полученного запроса.

Была переделана система редиректов, чтобы использовать правильный статус, и чтобы удалить избыточность. Пропала необходимость в RedirectTemporary, поэтому была удалена. Если вы хотите указать статус HTTP, используйте redirectWith.

Улучшена маршрутизация. Большинство маршрутизаторов в веб-фреймворках тупо проверяют маршруты один за другим, пока они не найдут подходящий. Yesod теперь имеет эффективное решение этой задачи:

  1. Группировка маршрутов по количеству компонентов, которые могут совпадать (разделенные слешем) в url. Этот поиск работает в фиксированное время.
  2. Используется карта, чтобы уменьшить количество сравнений строк для каждого маршрута с логарифмической сложностью.

Если вы уже используете Eсод, то пожалуйста, обновитесь до 0.10 и дайте знать авторам, как сделать его еще лучше. Если вы еще не знакомы с этим фреймворком, но хотите попробовать, то вам сюда.

0комментариев
Ваше имя
Ваш email*
Ваш сайт
Текст вашего комментария:

Поиск по блогу:
Подписаться:
Популярные:
Облако тегов:
Разное:
Счетчик: