Rails 5 – The Tour

50
texnoman
texnoman803956

    На 16 марта запланирован релиз Rails 5.0, самое время разобраться, что же нового и вкусного будет в новой версии рельсов (кроме нового логотипа и дизайна их официального сайта, я имею в виду).
    Поддерживается только ruby 2.2.2+
    Веб-сервер Webrick заменен на Puma на 16 потоков по умолчанию
    Все rake команды заменены на rails, например: rails db:migrate
    Turbolinks 5
    Текущая версия turbolinks обновляет содержимое всей страницы через ajax без повторного обращения к статическим файлам css, js и т.д. Новая же версия позволяет выборочно изменять содержимое отдельных частей веб-страницы (через partials), причем делать это можно по инициативе сервера.
    Action Cable
    Наконец-то реализована поддержка Websockets, теперь можно делать полноценные single page application без танцев с бубном. Каналы, подписчики к ним на стороне клиента и так далее. Очень удобно.
    Прекрасный видео туториал об использовании Action Cable – веб чат на Rails без обновления страницы.
    API режим
    Теперь есть возможность сделать приложение без HTML и JS частей по умолчанию – существенно быстрее и легче.
    rails new backend – – api
    Создается приложение, которое сразу cконфигурировано для работы с JSON, а не HTML
    Sprockets 4
    Добавлен файл app/assets/config/manifest.js для управления прекомпиляцией статических файлов.

    Еще обсуждается его конечно расположение и формат (js или yml), с финальным релизом будет понятно.
    Немного сахара
    Его на самом деле много, как много и мелких изменений, но мне приглянулись вот эти несколько:
    params в контроллере больше не хэш, а объект
    Мелкие методы Integer#positive? и Integer#negative?
    объекты с отношением belongs_to теперь по умолчанию должны иметь родителя, иначе будет exception
    Результат
    Обещают 20-30% прироста производительности. Как я понял, в основном, за счет массового использования замороженных строк (и массовой оптимизации кода, конечно же).

    texnoman.uz
    telegram.me/texnoman
    telegram.me/texnoman.uz
    fb.me/texnoman.uz

    Комментарии

    Для добавления комментариев необходимо авторизоваться.