Ruby дайджест #37: Citadel Architecture, релиз Rails 6.0.3.1, запись докладов RailsConf 2020 CE

Начнем с того, что 18 мая вышел важный релиз Rails с множеством исправлений, связанных с безопасностью, DHH ввел новый термин для монолитных приложений, работающих в связке с микросервисами, а конференцию RubyC 2020 отменили.

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

Citadel Architecture

DHH ввел новый термин Citadel Architecture, описывающий монолитные приложения, которые работают в связке с несколькими вспомогательными приложениями для узконаправленных нужд.

In addition to the Majestic Monolith, someone should write up the pattern of The Citadel: A single Majestic Monolith captures the majority mass of the app, with a few auxiliary outpost apps for highly specialized and divergent needs.

— DHH (@dhh) April 7, 2020

AppSignal поделились тем, как используют данный паттерн. Также Sid Sijbrandij отметил, что этот подход активно использует GitLab.

Прекращение поддержки Ruby 2.4

Команда разработки Ruby опубликовала пост в блоге о прекращении поддержки Ruby 2.4. Последний релиз 2.4.10 состоялся 31 марта и стал последним в ветке 2.4.x.

Доклады RailsConf 2020 CE

На канале Confreaks опубликовали плейлист докладов.

Релизы

rails 6.0.3.1 — исправление уязвимостей CVE-2020-8166, CVE-2020-8164, CVE-2020-8167, CVE-2020-8165, CVE-2020-8162.

TruffleRuby 20.1.10

VCR 6.0.0

Jekyll 4.1.0

Dynamoid 3.5.0

Статьи и туториалы

Comparison of approaches to multitenancy in Rails apps — сравнительная таблица подходов создания multitenancy-приложений.

A hands-on tutorial to debugging your code with pry-byebug — туториал по дебагингу кода с помощью гема pry-byebug.

Testing Ruby decorators with super_method — тестирование декораторов с помощью вызова родительских методов через super_method.

Why you (probably) don’t need PostGIS — статья о том, как можно заменить расширение PostGIS с помощью встроенных возможностей PostgreSQL.

Ruby Concurrency Final Report — отчет о проделанной работе над улучшением concurrency в Ruby от Samuel Williams.

Feature Flags: The stupid simple way to de-stress production releases — использование переменных окружения (или настроек) для возможности включать/отключать фичи без создания нового релиза.

Custom Exception Handling in Ruby — подборка хороших практик по работе с исключениями в Ruby.

Dissecting Rails Migrations — шпаргалка по использованию ActiveRecord Migrations.

Ruby Next: Make all Rubies quack alike — транспайлер, позволяющий использовать фичи новых версий языка без обновления Ruby.

Postgres Distinct On — автор делится опытом избежания проблемы N+1 на уровне базы данных.

Binpacking SQS batches — алгоритм обработки SQS-сообщений на Ruby.

RuboCop Defaults Survey Results — результаты опроса разработчиков об их дефолтных настройках RuboCop.

How to restart Sidekiq automatically for each deployment — как и почему нужно перезапускать Sidekiq после каждого деплоя.

Full Text Search in Milliseconds with Rails and PostgreSQL — туториал по имплементации полнотекстового поиска с помощью pg_search.

Ruby 2.7 deprecates conversion of keyword arguments — обновления по работе с аргументами в Ruby 2.7.

How to Fix Slow Code in Ruby — рекомендации по использованию бенчмарков для оптимизации кода от команды Shopify.

Five common issues with services and dry-monads — автор рассматривает типичные ошибки использования монад в сервисах.

70+ Ruby on Rails Security Best Practices & Vulnerabilities — большая статья-чек-лист по безопасности в Rails-приложениях.

Practical use of Ruby PStore — пример использования встроенного класса PStore.

Обновление Rails

Our Rails Upgrade Process: How to bundle update rails — пошаговый подход к обновлению версии Rails.

Upgrading Rails: Tracking down deprecated callbacks in Rails 5.0 — отслеживание колбеков при переходе с Rails 5.0 на Rails 5.1.

Инструменты

Gruff — построение PNG-графиков из датасетов.

AmazingPrint — форматирование результатов выполнения кода в консоли.

Tomo — альтернатива Capistrano для деплоя Rails-приложений.

Retriable — простой DSL для обработки исключений.

Committee — Rack Middleware для работы с JSON Schema.

Подкасты

Ruby Rogues

RR 454: Music and Factory Bot with Daniel Colson

RR 455: What’s Up, Rogues?

RR 456: Ruby for Good :) with Sean Marcia

RR 457: Upgrading to Rails 6

RR 458: Rules of OOP in Pictures with Ivan Nemytchenko

RR 459: Mutation Testing with Dave Aronson

RR 460: How to Brainstorm Introverts with DeeDee Lavinder

Remote Ruby

Joined by Josh Wood from HoneyBadger.io and Heya.email

Bridgetown Ruby with Jared White

Railsconf Couch Edition & May of WTFs with Matt Swanson

RWPod

15-й выпуск 08 сезона — jQuery 3.5.0, Puppeteer 3.0.0, Anyway Config, Global, Redaxios, Simpsons: Hit & Run API.

16-й выпуск 08 сезона — Node.js 14, How Trix works, Crank, Bridgetown, Vidact, Codedoc, Pico, Eloquent JavaScript.

17-й выпуск 08 сезона — Guild renamed to Ractor, is-promise post mortem, CableReady, Middy, useWorker, DarkMode.

18-й выпуск 08 сезона — Rails 6.0.3, Deno 1.0, AWS SimpleDB, RailsConf 2020 CE, Ruruby, Esbuild, React Flow, Majestic.

19-й выпуск 08 сезона — Rails 5.2.4.3, 6.0.3.1, Deno 1.0, ESLint 7.0.0, Recoil, SHA-256 Animation, WebGL guide, Shifty.

20-й выпуск 08 сезона — 19 Must-Have Gems for 2020, The Third Age of JavaScript, Awspec, Painterro, Reveal.js, NanoPop.

Ruby on Rails Podcast by 5by5

313: Strangler Fig Pattern & God Objects with Adrianna Chang

314: Active Storage & Modern Images with Mark Hutter

315: Worrying About the Wrong Things with Hilary Stohs-Krause

316: MongoDB and Onboarding Junior Developers with Emily Giurleo

317: Coming Home to Rails with Vince Eberle

318: Error Messages Are Your Friends with Gina Verrastro

319: Gap Here and 10x Customers with Sean Devine

320: ViewComponents in Action with Andrew Mason

События

RubyC 2020 — официально отменена в связи с COVID-19.

Brighton Ruby Conf— пройдет в формате записанных докладов.


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

Похожие статьи:
Компания LEXAND представила новинку в линейке видеорегистраторов - модель LEXAND LR50. Традиционно для видеорегистраторов бренда LEXAND, модель LR50...
Компания Google вскоре выпустит новую версию операционной системы Android 6.0 Marshmallow в качестве обновления для уже вышедших на рынок...
У новому випуску DOU Podcast обговорюємо принципи роботи в компанії Automattic, можливість замінити Telegram, штучний інтелект...
От редакции: в рубрике DOU Books участники сообщества рассказывают о пяти любимых книгах — тех, которые меняют...
Илье Полосухину — 28 лет, он соучредитель и технический директор блокчейн-стартапа NEAR Protocol...
Яндекс.Метрика