Ruby/Rails дайджест #28: важные обновления для нескольких версий Ruby on Rails, релиз Ruby 2.5.5 и 2.6.2

Всем привет! Начнем с того, что команда разработчиков Ruby on Rails выкатила ряд обновлений, которые устраняют уязвимости в версиях 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 и 6.0.0.beta3. Также сообщество Ruby продолжает изучать функциональные особенности фреймворка Ruby on Rails 6 (обратите внимание на подборку статей от BigBinary).

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

  • В Ruby on Rails обнаружены уязвимости, и команда разработчиков рекомендует как можно скорее установить обновления.
  • Юкихиро «Matz» Мацумото отметил, что крепкое сообщество формируется только вокруг работающего программного продукта.
  • По мнению Noah Gibbs, последние версии Ruby, а именно 2.5 и 2.6, стабильнее, чем предыдущие.
  • Ruby 2.6 содержит на 10 тыс. массивов меньше, чем версия 2.5.

Релизы

Rails 5.2.3 — представлена версия 5.2.3 фреймворка Ruby on Rails.

Rails 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1, and 6.0.0.beta3 — команда разработчиков Rails выкатила ряд обновлений, в которых исправлен ряд серьезных уязвимостей.

Rails 5.1.7 — вышла стабильная версия Rails 5.1.7.

Ruby 2.6.2 — релиз патч-версии Ruby 2.6.2.

Ruby 2.5.5 — новый патч Ruby 2.5.

Jekyll 4.0.0.pre.alpha1 — вышла первая альфа-версия инструмента Jekyll.

Webpacker 4.0.2 — популярный гем Webpacker был обновлен до версии 4.0.2.

Почитать

What causes Ruby memory bloat? — в чем причина чрезмерного использования памяти приложениями на Ruby.

March 2019 Security Advisories — свежий список уязвимостей менеджера пакетов RubyGems.

Testing Ruby on Rails Migrations — как тестировать миграции данных.

Do you really know public, private and protected in Ruby? — детальный разбор public, private и protected методов в Ruby.

How (not) to integrate Elasticsearch testing with RSpec — автор делится опытом написания тестов с помощью RSpec в приложении, использующем Elasticsearch.

Ruby Trickery — интересные кейсы применения Ruby от Ryan Bigg.

Solving Slack-Side Disconnects in slack-ruby-client — как решить проблему потери соединения Slack-ботами на Ruby при использовании slack-ruby-client.

Why I Believe Rails is Still Relevant in 2019 — автор перечисляет причины, почему Ruby on Rails остается востребованным инструментом в 2019 году.

Building Autocomplete With DynamoDB and Lambda — как реализована функция автозаполнения ключей в сервисе Honeybadger.

Ruby 2.7 — Numbered Parameters — в Ruby 2.7 будут добавлены numbered parameters; что это и как их использовать.

Using Que instead of Sidekiq — автор делится опытом использования инструмента Que вместо Sidekiq для управления фоновыми задачами.

Cables vs. malloc_trim, or yet another Ruby memory usage benchmark — еще один бенчмарк использования памяти в Ruby.

An RSpec time issue (and it’s not due to timezones) — автор описывает проблему, связанную с тестом, который не проходил только в определенное время суток.

Function/Method look up in Elixir/Ruby — автор сравнивает реализацию поиска функций и методов в Elixir и Ruby.

A Deep Dive into Routing and Controller Dispatch in Rails — детальный разбор маршрутизации в Rails.

New features in Rails 6: Multiple databases, parallel tests, Action Mailbox and more — обзор новых функций в Ruby on Rails 6.

How we Built a Highly Performant App with Ruby on Rails and Phoenix — как создать высокопроизводительное приложение, работающее на основе Ruby on Rails / Ruby и Phoenix / Elixir.

A Deep Dive into TensorStream — краткий гайд по основам фреймворка TensorStream для машинного обучения на Ruby.

Seven Ways to Fortify Your Application — семь способов обеспечить стабильную работу приложения.

Enumerating over large datasets in Ruby — как работает перечисление крупных объемов данных при помощи модуля enumerable в Ruby.

Для новичков

Ruby’s Many CLI Option Flags & How To Use Them — как использовать option flags при работе в командной строке.

How to Use AJAX With Ruby on Rails — подробный разбор, как применять AJAX в Ruby on Rails.

How to Tell Your Ruby Program to Stop Running Early — как остановить выполнение программы на Ruby.

Understanding Ruby: Scope & Binding Objects — области видимости в Ruby.

Value objects in Ruby — что такое value objects в Ruby.

How to React on Rails — как подключиться React к приложению на Ruby on Rails.

Securely transfering files to server — инструкция, как безопасно передать файлы на сервер.

Quick and easy admin options — какие инструменты в арсенале Ruby-разработчиков помогают быстро реализовать функционал администрирования.

Advanced Searching of Emails using ElasticSearch and Rails 5.2 — инструкция, как реализовать расширенный поиск электронных писем при помощи ElasticSearch в Rails 5.2.

A Rails testing «hello world» using RSpec and Capybara — с чего начать тестирование приложения на Rails.

Подборка от Andy Croll

Don’t use instance variables in partials — почему не стоит использовать instance variables в частичных представлениях (partial views).

Protect your sign up form with Rack::Attack — как защитить страницу регистрации при помощи Rack::Attack.

Подборка от Appfolio Engineering

Ruby Register Transfer Language — But How Fast Is It on Rails? — бенчмарки производительности Ruby с использованием Register Transfer Language.

Benchmarking Hongli Lai’s New Patch for Ruby Memory Savings — насколько эффективен патч для сокращения использования памяти в Ruby.

Подборка от AppSignal

Ruby’s Hidden Gems, StringScanner — как использовать гем StringScanner для парсинга строк.

Object Marshalling in Ruby — что такое marshalling и как использовать модуль Marshall в Ruby.

Подборка от Arkency

Optimizing test suites when using Rails Event Store — как оптимизировать тесты при использовании Rails Event Store.

A scary side of ActiveRecord’s find — автор на примерах описывает сценарий, при котором метод #find в ActiveRecord демонстрирует некорректное поведение.

Подборка от BigBinary

MJIT Support in Ruby 2.6 — что такое JIT-компилятор в Ruby 2.6.

Цикл статей о Ruby on Rails 6:

Подборка от BoltOps

Kinesis and AWS Lambda with Ruby on Jets — как подключить Kinesis Events к функциям AWS Lambda при помощи фреймворка Jets.

DynamoDB Stream Events and AWS Lambda with Ruby on Jets — автор рассказывает, как подключить DynamoDB Stream Events к функциям AWS Lambda при помощи фреймворка Jets.

Подборка от Igor Springer

Why don’t we validate controller parameters? — зачем и как валидировать параметры контроллеров.

How Ruby 2.6 allowed me to do another open source contribution — автор делится опытом участия в open-source проектах на примере коммита в Ruby 2.6.

Подборка от Jason Swett

Sometimes it’s better for tests to hit the real API — автор на примере собственного опыта показывает, почему тесты лучше прогонять на работающем API.

Code smell: long, procedural background jobs (and how to fix it) — почему важно писать тесты для фоновых задач.

Подборка от reinteractive

Working on inherited code bases — советы по работе с legacy-кодом.

How to craft a feature the right way — автор делится подходом к разработке фичей приложения.

Подборка от Scott Watermasysk

Proxying Requests To Heroku Via Caddy Server — инструкция, как перенаправлять запросы приложению на Heroku через сервер Caddy.

Multiple Heroku Environments — автор делится опытом работы с различными средами на Heroku.

Подборка от thoughtbot

Ruby under the influence [of Scala] — на основе собственного опыта, автор сравнивает, как реализованы некоторые функции в Ruby под влиянием Scala.

Services are Not a Silver Bullet — автор говорит о недостатках SOA-архитектуры в приложениях.

Туториалы

CI/CD for Microservices on DigitalOcean Kubernetes — как настроить CI/CD для микросервисов при помощи Docker и DigitalOcean Kubernetes на примере Ruby-приложения на фреймворке Sinatra.

How to use Docker Compose for Rails development: Do not bundle install in Dockerfile.dev — инструкция, как использовать Docker Compose в разработке приложений на Rails.

How to Build a Dynamic Website Using Google Sheets and Sinatra — как создать веб-приложение при помощи Google Sheets API и фреймворка Sinatra.

Profile Ruby & Rails Apps With rbspy in RubyMine — инструкция, как выполнить профайлинг приложений на Ruby при помощи инструмента rbspy в IDE RubyMine.

Using ActiveStorage in Rails API-apps — краткий гайд по использованию ActiveStorage в API на Rails.

How to download image files in Ruby — как реализовать функцию скачивания изображений при помощи open-uri и Down.

Гемы

StoreModel — библиотека позволяет манипулировать JSON-атрибутами как моделями ActiveRecord.

Rubyfmt — инструмент для форматирования кода на Ruby.

Himl — язык разметки на основе HTML.

Sidekiq statistic — гем для отображения статистики работы Sidekiq-воркеров.

Truemail — конфигурируемая библиотека для валидации адресов электронной почты.

Книги

Rails Testing for Beginners — Jason Swett выпустил пошаговый гайд о тестировании приложений на Rails.

Конференции

RubyKaigi 2019 — 18-20 апреля в Фукуоке (Япония) состоится конференция RubyKaigi; среди докладчиков такие громкие имена, как Matz, Aaron Patterson, Sam Phippen и Maciej Mensfeld.

RubyConfBY 2019 — 6 апреля пройдет конференция RubyConfBY.

RubyHack 2019 — 4 и 5 апреля в городе Sandy (США) проводится конференция RubyHack.

Ruby Wine — 13 апреля в Кишиневе пройдет конференция Ruby Wine.

Послушать

The Bike Shed

Ruby Rogues

RWpod

Ruby on Rails Podcast

Remote Ruby

  • Joined by Tim Riley — гость подкаста — один из ведущих разработчиков dry-rb Tim Riley.
  • Joined by Javan Makhmali and Sam Stephenson — в этом выпуске гости подкаста рассказывают о своем опыте в программировании, а также о работе в Basecamp.
  • Joined by Avdi Grimm — гость выпуска — известный Ruby-программист и ведущий скринкастов RubyTapas Avdi Grimm.
  • Joined by Jesus Castello — участники дискуссии обсуждают обучение Ruby, а также затрагивают многие интересные темы, в том числе новые функции в Rails 6.

Ruby Testing

Посмотреть

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

Мартовские выпуски платных скринкастов GoRails:

  • Strong Passwords with HaveIBeenPwned — как проверить, безопасны ли пароли пользователей, при помощи HaveIBeenPwned Password API.
  • How to use ActionText — знакомство с фреймворком ActionText в Ruby on Rails 6.
  • @mentions for Users with ActionText in Rails 6 — как упоминать пользователей при помощи @mentions во фреймворке ActionText.
  • User Onboarding Progress Bar — автор показывает, как реализовать функционал адаптации пользователей в приложении на Rails.

Подборка платных скринкастов от Drifting Ruby в марте:

Подборка платных скринкастов RubyTapas в марте:


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. . Спасибо за помощь в подготовке дайджеста команде RubyGarage.


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

Похожие статьи:
Всім привіт! Моє ім’я Іван Бондаренко, я з Дніпра, але вже 3 роки живу в Будапешті. До переїзду близько 3-х років веслував...
Время: понедельник + среда, 19:00-21:00Продолжительность: 2.5 месяца 2 декабря стартует курс Front-End Developer. Курс рассчитан...
12 марта в Киеве стартует новый курс Brain Academy — «React.js: от основ до масштабируемых SPA»!Курс будет полезен для Frontend...
У Львові 23 лютого раптово помер Олексій Олексійович Скрипник, співзасновник та голова Наглядової ради...
Ссылки, на которые лучше таки нажать (по мнению автора), отмечены знаком (!) Java and money (!) Кому не интересно...
Яндекс.Метрика