Ruby/Rails дайджест #31: второй релиз-кандидат Rails 6, первая мажорная версия ruby-prof, Aaron Patterson о рантайме Ruby
Дайджест был создан в соавторстве с Мариной Завийбородой, Copywriter в RubyGarage.
Всем привет! Начнем с того, что вышел второй релиз-кандидат Rails 6, в котором было добавлено 172 коммита после релиза прошлой версии. Спустя 14 лет разработки выпущена первая мажорная версия инструмента профилирования ruby-prof, предоставляющего отчеты и высокую скорость обработки кода.
Тренды в сообществе Ruby
Сообщество продолжает делиться мнением о Sorbet: Подкаст с Paul Tarjan.
Aaron Patterson из GitHub обсуждает язык Ruby и его runtime в Software Engineering Radio.
Cookpad провели Ruby Hack Challenge — мероприятие, посвященное погружению разработчиков в работу MRI.
Почитать
Hiding .gemrc credentials in dotfiles — полезный лайфхак для тех, кто хочет скрыть .gemrc credentials в дотфайлах.
I’m worried about Ruby future — сколько будет существовать Ruby, столько и будут вестись разговоры о его мрачном будущем :) В статье автор приводит 3 причины, почему Ruby «уже не тот». Соглашаться или нет — решать вам.
Ruby 3 gathering/hack challenge summary — обзор и итоги митапа, посвященному Ruby 3.
12 Factor Rails Settings — автор делится опытом хранения конфигураций в переменных окружения.
A weird Capybara error in `within` block — решение ошибки в блоке ’within’ при работе с Capybara.
Ruby on Rails vs Django — Which One To Pick For Your Web Project? — сравнение Ruby on Rails и Django в качестве фреймворка для стартапа.
Linting Ruby In Your Editor — краткий обзор 3 расширений линтеров для Vim, Visual Studio Code и Emacs.
When To Use Rails and React in Your Project — Rails и React могут быть очень эффективными решениями для проекта; автор рассказывает о преимуществах использования двух технологиях на проекте.
Productive Procrastination for Programmers — works for Ruby and Elixir — прокрастинация может быть продуктивной, решая задачки из статьи.
Where Does Rails Spend Its Time? — результаты бенчмаркинга Ruby 2.6 (текущего стабильного релиза).
Ruby 2.7 and the Compacting Garbage Collector — обзор Ruby 2.7 и compacting garbage collector, который разрабатывал Aaron Patterson.
Подборка от BigBinary о Rails 6
Традиционная подборка от BigBinary о всех обновлениях в Rails 6:
Rails 6 reports object allocations made while rendering view templates
Rails 6 adds ActiveRecord::Relation#annotate
Rails 6 adds hooks to Active Job around retries and discards
Rails 6 adds support for Multi Environment credentials
Rails 6 adds before? and after? to Date and Time
Подборка от Evil Martians
Ruby on Whales: Dockerizing Ruby and Rails development — подробный туториал по разворачиваю приложений на Ruby с помощью Docker.
GraphQL on Rails: Updating the data — вторая часть туториала по разработке приложений на GraphQL с Rails на бэкенде и React/Apollo на фронтенде. В этой части говорится о клиентском кэшировании и способы обновления данных.
GraphQL on Rails: On the way to perfection — третья и финальная часть туториала, которая посвящена приведению кода в соответствие принципам DRY и устранению ошибок.
Подборка от Daniel Doubrovkine
Asserting Existence with Mocha, Chai and TypeScript Strict Null Checks — тестирование TypeScript кода с помощью Mocha и Chai.
Handling of HTTP Headers in Grape with Rack and Rails — туториал по обработке HTTP-заголовков в Grape на Rack и Rails.
Getting Started with Typescript — краткий туториал для новичков в Typescript.
Туториалы
Example Gitlab Pipeline Configuration for Rails Projects — подробный туториал с конфигурацией пайплайна Gitlab для проектов на Rails.
Brewing our own Template Lexer in Ruby — пример имплементации lexer’а для темплейтов в Ruby.
Minimum viable example of calling Rust from Ruby without a gem — вызов Rust кода из Ruby без использования гемов.
Setting up Application Performance Monitoring in DataDog in your Rails App — пример настройки мониторинга производительности приложения в DataDog.
Benchmarking a page protected by a login with Apache Benchmark — туториал по использованию HTTP-бенчмаркинга для приложений, защищенных логином.
Reading Ruby Metaprogramming inside Devise — сложно представить себе проект на Rails без использования Devise. В этом туториале рассматривается пример метапрограммирования с гемом Devise.
Dissecting Code With Ruby’s caller Method — инспектирование Ruby кода с помощью caller метода.
Handling deletes with Null Object Pattern in Ruby — автор делится опытом обработки удалений с помощью Null Object Pattern на проекте, который приводили в соответствие с GDPR.
Ruby on Rails Developer Series: Spinning Up a JSON API in Minutes — пример ускорения JSON API за считанные минуты.
Kubernetes Deployments: The Ultimate Guide — подробный туториал по деплою приложения с помощью Kubernetes.
Гемы
query_track — инструмент для отлавливания медленных SQL запросов.
tty-logger — красивый вывод текста в терминал.
ahoy_email — сбор аналитики поверх ActionMailer.
transproc — библиотека для работы с Ruby объектами в функциональном стиле.
time_calc — новый гем для операций со временем в Ruby.
Послушать
Ruby Rogues
RR 422: Build Chatbot Interactions in Ruby with Daniel Pritchett — ведущие подкаста обсуждают разработку чатботов с помощью фреймворка Lita и инфраструктуры Gremlin.
RR 421: Scaling and Shopify with Kir Shatrov — тема подкаста — опыт Shopify в масштабируемости их приложения и планировании мощностей.
RR 418: The Life and Death of a Rails App with Olivier Lacan — ведущие обсуждают проблему технического долга и почему важно создавать легко поддерживаемые Rails-приложения.
RWpod
RWPod Кафе 10: Dávid Halász — интервью с Dávid Halász о его вкладе в Rails-комьюнити, работе над open source проектами и его грядущем выступлении на RubyC.
Remote Ruby
Joined by Ernesto Tagwerker — в этом эпизоде ведущие подкаста, Джейсон и Крис, общаются с Эрнесто Тагверкером — основателем Ombu Labs (агентства быстрой разработки программного обеспечения) и Fast Ruby (обновления Ruby on Rails). Вместе они обсуждают старт карьеры в Ruby для новичков, обновления Rails и многое другое.
Joined by Piotr Solnica — подкаст с Piotr Solnica, создателем ROM и членом основной команды dry-rb об идее ROM и dry-rb, о помощи в сборке Hanami 2, смешивании функционального и объектно-ориентированного программирования в Ruby и многом другом!
Joined by Chris Arcand — эпизод с Крисом Аркандом, старшим инженером в @HashiCorp, которые создают Terraform & Sentinel. Крис делится тем, чему научился, работая удаленно, и дает несколько советов для интервьюирования и работы удаленно.
Ruby on Rails Podcast by 5by5
279: Scaling & Training Rails with Anand Dhillon — подкаст посвящен теме Domain-Driven Design и реализации машинного обучения в Cover.
278: Introducing Sorbet: A Ruby Typechecker with Paul Tarjan — подкаст c Paul Tarjan, работающим в Stripe над компонентами производительности и инфраструктуры для разработчиков. Он является техническим руководителем Sorbet, новым тайп-чекером для Ruby.
277: Caching GraphQL with Michael Kelly — подкаст c Michael Kelly, старшим инженером Stackshare и страстным open source контрибьютором. Он является автором гема graphql-cache, плагина кеширования для graphql-ruby.
276: Introducing ActionView::Component with Joel Hawksley — подкаст c Joel Hawksley, инженером-программистом в GitHub, который возглавляет внедрение поддержки ActionView :: Component в ядро Rails.
События
Rails Girls Dnipro 2019 —
RubyC — the biggest Ukrainian Ruby conference — ежегодная конференция RubyC пройдет
← Предыдущий выпуск: Ruby дайджест #30