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

Релізи

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.

— огляд нових функцій в 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 — як працює перерахування великих обсягів даних за допомогою модуля перечіслімого в 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 install in bundle 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

Ruby Testing

Подивитися

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

Березневі випуски платних скрінкасти GoRails:

Підбірка платних скрінкасти від Drifting Ruby у березні:

Підбірка платних скрінкасти RubyTapas в березні:


Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на kirill@rubygarage.org . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage .


? Попередній випуск: Ruby дайджест #27

Опубліковано: 06/04/19 @ 10:00
Розділ Різне

Рекомендуємо:

Прогнозування на стороні клієнта за допомогою TensorFlow.js
DOU Books: 5 книжок про дизайн-рішення від Андрея Русакова, Principle Experience Designer у SoftServe
Чи повинна картка товарів бути унікальною?
Еволюція зарплат: як Senior ASP.NET розробник доріс до $5000
DOU Проектор: Kattana — професійний торговий термінал для криптовалют