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.
Почитать
Серия о метриках сложности программного обеспечения:
- Ruby Software Complexity Metrics (Part One: Prerequisites — Abstract Syntactic Representation)
- Ruby Software Complexity Metrics (Part Two: Calculations — Pseudocode and Examples)
- Ruby Software Complexity Metrics (Part three: Interdependence — Mathematical Analysis)
Серия о RuboCop на legacy-проектах:
- RuboCop in legacy projects, part 1: TODOs and TODON’Ts
- RuboCop in legacy projects, part 2: Focus on the present
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:
- Trailblazer tutorial: fat controller — part 1
- Trailblazer tutorial: move business logic from controller — part 2
- Trailblazer tutorial: refactoring fat controller — part 3
- Trailblazer tutorial: updating old fat controller — part 4
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
- 43 выпуск 07 сезона. Ruby 2.7.0-preview2, Node.js 12 LTS, Electron 7.0.0, Puppeteer 2.0.0, Peaks.js, Mermaid и прочее
- 42 выпуск 07 сезона. Shrine 3.0, fun with each_with_object, Ionic React, TinaCMS, Zero, React-three-fiber game и прочее
- 41 выпуск 07 сезона. Spree 4.0, Sprockets 4.0.0, Sinuous, SAGE, PunyLinux, RoughViz.js, Ferrum, Rotary Dial и прочее
- 40 выпуск 07 сезона. Ruby 2.6.5, TensorFlow 2.0, Preact X, Zeitwerk in Rails 6, Carbon, SweetAlert2 и прочее
- 39 выпуск 07 сезона. New Ruby 2.7 IRB, Puma 4.2.0, V8 v7.8, Node v12.11.0, GPU.js 2.0, React-Toastify 5.4.0 и прочее
- 38 выпуск 07 сезона. Storybook 5.2, Textmate 2.0, RubyGems.org and Chef Gem Ownership, TensorFlow, Vue Select и прочее
Remote Ruby
- Managed Databases in Hatchbox, Stripe Workflows, ActionText, and ActionMailbox
- Testing in Ruby
- Building Kolide with Jason Meller
5by5 Ruby on Rails Podcast
- #293: Speed as a Feature with Gannon McGibbon
- #291: New Gigs, Rails 6 Upgrade Confessions and Rubyconf Hype
- #290: Ruby for Good with Polly Schandorf
- #289: When You HTTParty, You Must Party Hard with John Nunemaker
- #288: NPR for Geeks with Dan Benjamin
Посмотреть
GitHub Actions with Ruby on Rails: Setting up Continuous Integration
События
Ruby Happy Hour — Компания X1 Group проводит митап из серии Happy Hour, посвященный Ruby. Обещают интересные темы и ламповую обстановку (не более 20 человек на митапе).
← Предыдущий выпуск: Ruby дайджест #32
2 коментарі
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.