Ruby дайджест #33: новые версии Ruby 2.6.5. и 2.7.0.-preview2

Дайджест был создан в соавторстве с Мариной Завийбородой, Copywriter в RubyGarage.

Всем привет! Начнем с трендов в сообществе Ruby. В октябре вышла версия Ruby 2.6.5, которая включает улучшения безопасности и версии 2.7.0.-preview2 с pattern matching, улучшением REPL, Compaction GC. Также RuboCop получил использование лучших практик и стандартов оформления кода Minitest. Новая библиотека основывается на гайдлайнах, указанных в комьюнити Minitest Style Guide.

Релизы

  • Introducing my Schwad Performance Logger gem — новый гем Schwad Performance позволяет быстро регистрировать использование памяти и времени в коде, а также дает быстрый доступ к основным функциям других полезных инструментов для отслеживания производительности.
  • Rails 6.0 new framework defaults: what they do and how to safely uncomment them — апдейт в defaults Rails 6.0 и как их раскомментировать.
  • В Rails 6 представили Action Text, который обеспечивает поддержку WYSIWYG.
  • RubyCritic v4.2.0 получил поддержку SimpleCov.
  • Долгожданный официальный релиз Trailblazer 2.1🥳
  • Гем Endpoint для управления ответами приложения, которые зависят от результата выполнения вызываемой операции/сервиса, отлично подходит для Trailblazer.
  • Spree 4.0 с поддержкой Rails 6.0, Address Book и JSON-LD.
  • Shrine 3.0.

Почитать

Серия о метриках сложности программного обеспечения:

Серия о RuboCop на legacy-проектах:

Why RSpec Tests Fail (and How To Fix Them) — почему тесты RSpec фейлятся и как устранять эти неполадки.

Optimistic vs. Pessimistic locking in Rails — разбор возможностей Rails для оптимистической блокировки в моделях ActiveRecord.

Three Awesome Libraries to Assess Code Quality in Ruby — обзор библиотек RubyCritic, MetricFu и Attractor для измерения качества кода.

10 lessons learnt from the Ruby Refactoring Kata — Tennis Game — автор делится опытом прохождения Tennis Game, набора заданий по рефакторингу Ruby-кода.

Getting Started with AWS S3 IAM Policies Security Config for Rails Apps — автор рассказывает о AWS IAM policies и как безопасно их настроить, работая с AWS S3 в Rails-приложении.

Keep Code Review from Wasting Everyone’s Time — полезная статья от CodeClimate о том, как сделать процесс Code Review эффективным.

Ruby 2.7preview2, a Quick Speed Update — в Appfolio любят проводить всяческие испытания и версия Ruby 2.7 тоже недавно поддалась тесту на скорость.

How MJIT Generates C From Ruby — A Deep Dive — разбор, как MJIT генерирует C из Ruby.

Continuous Delivery Co-Author Uncovers the Top Obstacles for Development Teams — основные моменты из подкаста с Dave Farley, автором и консультантом в Continuous Delivery.

Managing PostgreSQL partitioned tables with Ruby — Гем pg_partitition_manager помогает легко поддерживать многораздельные таблицы PostgreSQL, которые нужно создавать и удалять по мере добавления и окончания срока хронологических данных.

The Most Common Problems of Growing Shopify Stores and How to Solve Them with the Right Native or Custom Integrations — доставка, интеграция с ERP, оптимизация конверсий и многие другие проблемы возникают по мере масштабирования онлайн-магазинов на движках вроде Shopify. В статье разбираются способы решить проблему интеграций с помощью кастомного решения или готовых плагинов.

RubyC 2019 Highlights — Naturaily опубликовали основные тезисы с RubyC 2019 и впечатления разработчиков от посещения конференции.

Heuristics for choosing bounded context for an event handler — обзорная статья по эвристикам для выбора ограниченного контекста для обработчиков событий.

Книги

Вышла обновленная книга Ruby on Rails Tutorial под версию Rails 6.

The Pragmatic Bookshelf выпустили Modern Front-End Development for Rails, большое пособие по современным приемам фронт-энд разработки на JavaScript для Rails.

Туториалы

Большой туториал, в котором авторы показывают, как превратить ваше legacy-приложение на Rails в совершенно новое на Trailblazer:

How to start your Rails app in a Docker container — короткий гайд по установке и запуску Rails-приложения в Docker.

Deep dive into the code of Local Time — решаем проблему локализации времени с помощью гема Local Time.

Why Cleanup Rails Image Assets? — чистить файлы изображений полезно по многим причинам: от ускорения процесса развертывания до более простой поддержки. Туториал объясняет, как безопасно почистить файлы изображений.

End-to-end testing for API only Ruby on Rails apps with Cucumber syntax — учимся end-to-end тестированию бэкенда Rails-приложений на Cucumber.

Intro to background Jobs — обзорная статья по имплементации фоновых задач.

Fill in Stripe Elements JS for SCA / 3D Secure 2 and Capybara — Stripe Elements Javascript теперь поддерживает строгую аутентификацию клиентов (SCA) с 3D Secure 2 (3DS2). Это делает их обработку в системных тестах немного сложнее. В туториале рассматриваются 3 вспомогательных метода, которые вы можете использовать с Capybara для взаимодействия с элементом карты Stripe и модальными кнопками SCA.

Protecting a Rails app from small scripted attacks — Защищаем Rails-приложение от небольших атак с помощь гема rack-attack.

Building a Rails CI pipeline with GitHub Actions — новая платформа автоматизации, которая запускается прямо из репозитория GitHub. В туториале рассматривается процесс создания пайплайна Rails CI с помощью GitHub Actions.

Build a Rails application with VueJS using JSX — пошаговый туториал по созданию Rails-приложения на VueJS и JSX.

Speeding up Bundler in dockerized environments — ускоряем Bundler в приложениях на Docker. Кстати, примеры универсальны и подходят для Node, Python и других языков.

Sharing Query Logic Within ActiveRecord Models — работаем с логикой поиска элементов в моделях.

Sidekiq Optimization and Monitoring — гайд по оптимизации и мониторингу процессов Sidekiq.

A Step-by-Step Guide to Continuous Deployment on Kubernetes — пошаговый гайд по непрерывному развертыванию с помощью Kubernetes.

Configure Your App with SSM Parameter Store — настройка Rails-приложения с помощью переменных окружения работает хорошо, но иногда разработчикам нужно иметь возможность обновлять конфигурацию на лету. В статье рассмотрим способ обновить среду приложения с помощью SSM Parameter Store.

Aggregate and deduplicate your deprecation warnings in Rails — агрегируем и удаляем дублированные предупреждения об устаревшей версии Rails.

Retry ActiveJob (Sidekiq) on exception — как работать с перезапуском фоновых задач, если задача была прервана исключением.

Подборка от BigBinary

Традиционно, BigBinary рассматривают все обновления в Rails 6:

Rails 6 adds ActiveStorage::Blob#open

Rails 6 adds ActionMailer#email_address_with_name

Rails 6 raises ArgumentError if custom param contains a colon

Rails 6 introduces new code loader called Zeitwerk

Rails 6 adds ActiveSupport::ActionableError

Rails 6 adds add_foreign_key and remove_foreign_key for SQLite3

Послушать

RWpod

Remote Ruby

5by5 Ruby on Rails Podcast

Посмотреть

GitHub Actions with Ruby on Rails: Setting up Continuous Integration

События

Ruby Happy Hour — Компания X1 Group проводит митап из серии Happy Hour, посвященный Ruby. Обещают интересные темы и ламповую обстановку (не более 20 человек на митапе).


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

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному2
LinkedIn



2 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Материал выше всяких похвал — большое спасибо !

Спасибо, мы очень стараемся🙌🏻

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