Веб-разработка? Это просто! Вышел новый релиз web фреймворка Yesod
9-ого февраля сего года вышел 0.10 релиз фреймворка Yesod. Для тех кто о нем никогда не слышал - рассказываю. Есод - это бесплатный фреймворк предназначенный для быстрого построения проектов с высокой нагрузкой. В качестве языка программирования используется Haskell. Да-да, вы не ослышались именно тот о котором в последнее время так много упоминают. Есод будет для вас хорошим выбором, если для вас выполняются данные условия:
Вашему проекту необходима замечательная асинхронность ввода-вывода и производительность - быстрее, чем node.js и в некоторых случая даже быстрее чем приложения на C/C++ (благодаря технологии мемоизации вычислений)
Нужны хорошие возможности по расспаралеливаню вычислений
Нужен низкий порог дефектов кода - без необходимости писать огромное количество тестов
нужна высокая безопасность ваших приложений (большинство проблем безопасности не представляется возможными в хаскеле)
Вы опытный программист Haskell или хотите выучить новый язык программирования
Основная цель этого релиза была перейти на кондуиты (каналы). А также некоторые незначительные моменты в области персистенции. Предпологается что это релиз-кандидат версии 1.0.
Вот список изменений:
Persistent:
Новый интерфейс rawSql
Новый MySQL бэкенд, реализация CouchDB бэкенда в процессе
Поддержка встроенных записей, карты, списки, и наборы
Shakespeare:
Теперь используется новый addDependentFile для GHC 7,4. Это означает, что когда вы вносите изменения в шаблоны шекспира, они будут автоматически перекомпилироваться при сборке проекта.
shakespeare-js:
Теперь компиляция Coffeescript выполняется во время сборки проекта. Эта стратегия в настоящее время поддерживается библиотекой шекспир: и если шаблону необходимо выполнить внешнюю программу, это будет сделано один раз во время компиляции. Благодаря этому Coffeescript является замечательным выбором. Coffeescript добавляет большую наглядность Javascript скриптам, что избавляется от противоречий и добавляет удобства.
WAI:
Были сделаны большие изменения для перехода на кондуиты. Было также много мелких исправлений ошибок и улучшений для увеличения производительности. RequestLogger интерфейс был усовершенствован, и ошибка в быстром логгере была исправлена. В настоящее время ставятся эксперименты со способами сделать более эффективной передачу данных в WAI. Одним ограничивающим фактором было невозможность передавать произвольные данные. В WAI теперь есть набор методов для достижения этой цели, которые используют хранилище пакетов.
Yesod:
Опять же, в центре внимания этого выпуска был переключатель каналов (кондуитов). Для пользователя это отображается в изменении конфигурации, и обработки исключений. С переходом на кондуиты был полностью удален обработчик liftIOHandler.
Добавлена настройка Approot, которая генерирует URL. Теперь у вас есть возможность изменять URL на основе полученного запроса.
Была переделана система редиректов, чтобы использовать правильный статус, и чтобы удалить избыточность. Пропала необходимость в RedirectTemporary, поэтому была удалена. Если вы хотите указать статус HTTP, используйте redirectWith.
Улучшена маршрутизация. Большинство маршрутизаторов в веб-фреймворках тупо проверяют маршруты один за другим, пока они не найдут подходящий. Yesod теперь имеет эффективное решение этой задачи:
Группировка маршрутов по количеству компонентов, которые могут совпадать (разделенные слешем) в url. Этот поиск работает в фиксированное время.
Используется карта, чтобы уменьшить количество сравнений строк для каждого маршрута с логарифмической сложностью.
Если вы уже используете Eсод, то пожалуйста, обновитесь до 0.10 и дайте знать авторам, как сделать его еще лучше. Если вы еще не знакомы с этим фреймворком, но хотите попробовать, то вам сюда.