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

Похожие статьи:
Компания Gartner опубликовала свой отчет по анализу рынка смартфонов в последнем квартале минувшего года. По имеющимся сведениям, компании...
У новому випуску DOU Podcast ми обговорюємо рейтинг найбільших продуктових компаній в Україні, середовище для розробки в Netflix, критерії...
17 сентября в Fabrika.space пройдет конференция KharkivCSS. Будут затронуты только самые интересные темы: современные стандарты, технологии,...
Представляємо заключну статтю циклу про зарплати. У попередніх статтях розглядали розробників і тестувальників. У цій...
Мене звати Ірина Ісай, я техрайтерка кіберспортивного медіахолдингу WePlay Esports, частини холдингу TECHIIA. У попередній...
Яндекс.Метрика