×Закрыть

Ruby/Rails дайджест #29: первый релиз-кандидат Rails 6, обновление Ruby до 2.6.3, анонс состава спикеров RubyC

Всем привет! Откроем наш дайджест новостью о том, что Rails 6 будет поддерживать версии Ruby только новее 2.5. Также был опубликован отчет о прогрессе работы над Ruby 3.0. А еще был анонсирован полный состав спикеров конференции RubyC, которая состоится 14-15 сентября в Киеве.

Тренды в сообществе Ruby

Релизы

react-rails 2.5.0 — новый релиз гема для интеграции React в Rails приложение;

searchkick 4.0.0 — вышла четвертая версия гема для работы с полнотекстовым поиском через Elasticsearch;

faktory 1.0.0 — обновление движка для обработки фоновых задач;

Ruby 2.6.3 — апрельский релиз Ruby 2.6.3;

Rom 5.0 и rom-sql 3.0 — новые версии альтернативных ORM.

Почитать

Ruby 2.7 — Pattern Matching — First Impressions — первые впечатления от pattern matching в Ruby 2.7;

Learn by Benchmarking Ruby App Servers Badly — уроки, которые команда Appfolio извлекла из проведения бенчмарков серверов приложений;

Creating Ruby native extensions — пример создания нативных расширений на C;

Replace chromedriver-helper with webdrivers — способы замены устаревшего гема chromedriver-helper;

The status of Ruby memory trimming & how you can help with testing — способы профилирования памяти в Ruby приложениях;

How Do You Know If A Gem Is „Done” or „Dead”? — интересная дискуссия вокруг Rubytoolbox на тему того, как можно оценивать поддержку гемов;

Optimizing Database Performance in Rails — оптимизация базы данных в контексте ActiveRecord и Rails;

Using streams to build read models — использование ruby_event_store c ActiveRecord моделями.

Подборка от AppSignal

Object Marshalling in Ruby — статья про концепцию Object Marshalling, имплементацию с помощью модуля Marshall и примерами;

Learning by building, a Background Processing System in Ruby — туториал по созданию системы фоновой обработки с помощью гема Sidekiq;

Kafka and Ruby, a Sidekiq lovestory — опыт миграции process pipeline с Ruby на Kafka с помощью гема Sidekiq.

Подборка от BigBinary

Продолжение цикла статей о нововведениях в Rails 6:

Rails 6 adds ActiveModel::Errors#of_kind?

Rails 6 adds ActiveRecord::Relation#reselect

Database seeding task uses inline Active Job adapter in Rails 6

Rails 6 requires Ruby 2.5 or newer

Rails 6 drops support for PostgreSQL version less than 9.3

Bulk insert support in Rails 6

Rails 6 allows to override the ActiveModel::Errors#full_message format at the model level and at the attribute level

Туториалы

Creating a chat application from scratch using Rails and WebSockets — создание чата на Rails и WebSockets при помощи ActionCable;

Prevent Links in Text Fields to Foil Spammers — валидация контактных форм для предотвращения добавления ссылок;

Validate and Fix Ruby on Rails ActiveRecord PostgreSQL Data Integrity — валидация целостности данных в PostgreSQL в связке с ActiveRecord;

Boost Your Shell Scripting with Ruby and Rexe — использование Ruby и Rexe в командной строке;

Using custom objects in Ruby Ranges — расширение возможностей Range с помощью написания собственных классов.

Гемы

Licensed — гем от GitHub для проверки лицензий в зависимостях пролижения;

Gel — альтернативный пакетный менеджер, совместимый с Bundler;

Imap-backup — утилита для создания бекапов почты Gmail (или любой другой через IMAP протокол);

InSpec — фреймворк для тестирования инфраструктуры приложений.

Послушать

Стримы Антона Давыдова

RWpod

The Bike Shed

Ruby Rogues

  • RR 406: How Hard is Ruby on Rails to Learn? — в новом подкасте Charles Max Wood, Nate Hopkins, David Richards и Dave Kimura общаются на тему сложности изучения Ruby on Rails, делятся советами по изучению и менторингу новичков;
  • RR 407: Functional Programming in Ruby using Dry Gems with Igor Morozov — подкаст, полностью посвященный функциональному программированию и обсуждению карьерных возможностей для senior-разработчиков и обучению новичков;
  • RR 408: Zeitwerk with Xavier Noria — подкаст с Xavier Noria, создателем гема Zeitwerk, более эффективного code loader для Ruby;
  • RR 409: Turning Fat Models Into Skinny POROs with Jason Swett — извечная тема Fat Models, Skinny Controllers (правда, в этот раз POROs: Plain Old Ruby Objects) вместе с Jason Swett, автором ресурса codewithjason.com для изучения тестирования Rails-приложений.

Ruby on Rails Podcast

Remote Ruby

  • Jumpstart Pro and Building a SaaS App with Hanami — обсуждение проекта Jumpstart Pro с его создателями, опыт создания приложений с фреймворком Hanami и немного о Crystal.
  • Rails 6, Ruby 3, and RailsConf — грядет летний сезон конференций! Авторы подкаста обсуждают RailsConf, Rails Kaigi и новые версии Ruby/Rails.


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на kirill@rubygarage.org. Спасибо за помощь в подготовке дайджеста команде RubyGarage.


← Предыдущий выпуск: Ruby дайджест #28

LinkedIn

Подписаться на комментарии