Ruby/Rails дайджест #12: обзор улучшений Ruby 2.5, ретроспектива RubyConf 2017
Всем привет! В новом Ruby/Rails дайджесте за ноябрь много информации о новой версии Ruby 2.5 и интересных методах, которые стали доступны вместе с её релизом. Обратите внимание на интервью со Scott Belaware, одним из создателей Eventide, от блога Arkency, а также на подборку их прочих статей. Кроме того, не может не радовать обзор RubyConf 2017 от блогера James Thompson, в котором он детально рассказывает о событиях каждого дня конференции.
Почитать
Performance Improvements in Ruby 2.5 — автор рассматривает улучшения производительности в Ruby 2.5.
Build Your Own Link Shortener App with Ruby & Sinatra — туториал о том, как построить приложение для сокращения ссылок на Ruby и Sinatra.
Atom Tricks, Plugins & Shortcuts for Ruby Developers — в статье собраны интересные приемы и расширения для Ruby devs, доступные в редакторе Atom.
Learn to Implement & Use Prefix Trees in Ruby — туториал о том, как правильно внедрять и применять структуру данных Prefix Trees для оптимизации поиска.
Preventing security issues in Rails — автор рассматривает возможные пути предупреждения проблем с безопасностью в Rails.
Use Capybara’s #all to Select From Multiple Elements — туториал об использовании команды #all в Capybara для выбора из нескольких элементов одновременно.
Why Aren’t We Using More Service Objects Already — автор рассуждает на тему использования паттерна Service Objects и подходов к его реализации.
Upgrading Kickstarter to Rails 5 — история обновления Kickstarter до версии Rails 5.
Ruby performance profiling: an unorthodox approach — автор рассказывает о необычном способе профилирования производительности Ruby приложений.
Interactors in Ruby — easy as cake, simple as pie — автор делится своим опытом использования паттерна Interactor. Пример того, как элегантно можно решить проблему толстых контроллеров и моделей.
How require loads a gem — в статье подробно рассказывается о принципе работы команды require.
Partition and conquer — рассказ о том, как разделить гигантскую таблицу, которая тормозит работу production приложения.
Useful RSpec trick for testing method with arguments — обзор полезных приемов в RSpec для тестирования методов с аргументами.
Ruby Versions Used in Commercial Projects in 2017 — обзор версий Ruby, которые использовались в коммерческих проектах в 2017 году.
Advisory Locks and How to Use Them — статья о том, как использовать Advisory Locks.
Karafka (Ruby + Kafka) framework 1.1.0 Release Notes — статья-обзор изменений в фреймворке Karafka 1.1.0.
5 Ruby on Rails Tips You Probably Don’t Know — в статье рассказывается про 5 интересных методов, которые автор нашел в процессе работы с RoR.
Embracing metrics as new tests — автор рассказывает о том, как можно интегрировать инструмент Prometheus в RoR приложение для мониторинга его работы.
First impressions of Ruby branch coverage with DeepCover — автор делится первыми впечатлениями от новой фичи в Ruby 2.5 — branch coverage в связке с гемом DeepCover.
Proxy Pattern — автор на примерах разбирает различные применения Proxy-паттерна.
Elixir vs Ruby — Which One is the Language for Your Next Project? — сравнение Elixir и Ruby. Для каждой задачи — свой язык.
RefineryCMS — a Ruby-based Alternative for WordPress — статья-обзор RefineryCMS, как альтернатива Wordpress.
How to Clear Out Your Controllers and Models with Waterfall Gem — туториал по «облагораживанию» контроллеров и модулей с помощью гема waterfall.
Chain of Responsibility Pattern — Ruby — автор детально рассказывает, как эффективно реализовывать паттерн Chain of Responsibility в Ruby. Примеры прилагаются.
Improving Ruby Performance with Rust — как переписать медленный Ruby-код с помощью Rust для увеличения производительности.
Session-only cookie corruption in Ruby web apps — в статье предлагается временное решение для проблемы cookie corruption в Rails.
How to receive and respond to text messages in Ruby with Hanami and Twilio — обзор фреймворка Hanami от команды Twilio, ну и конечно же, интеграция Twilio в Hanami.
Using ActiveStorage Today (prior to Rails 5.2 release) — туториал по использованию ActiveStorage в новой версии Rails 5.2.
Подборка полезных статей от BigBinary за ноябрь:
- Ruby 2.5 introduces Dir.children and Dir.each_child — обзор новых методов Dir.children and Dir.each_child в версии Rails 5.2.
- Ruby 2.5 added delete_prefix and delete_suffix methods — обзор методов delete_prefix и delete_suffix в новой версии Ruby 2.5
Подборка статей от блога Arkency в прошлом месяце:
- Safely migrating has_and_belongs_to_many associations to Rails 4 — автор рассказывает, как безопасно перенести habtm связи при миграции из Rails 3 на Rails 5.
- Interview with Scott Bellware (Eventide co-creator) about micro-services in Ruby, event sourcing, autonomous services, SOA, dumb pipes, EventStore and mis-representation of terms in IT — интересное интервью с одним из создателей Eventide Scott Belaware про реализацию архитектуры микросервисов на Ruby.
- Quarantine your non-deterministic tests with a time limit — туториал о том, как отправить на карантин тесты, которые ‘падают’ в случайном порядке.
- Event Sourcing is a transferable skill — знание паттерна Event Sourcing можно использовать в различных ситуациях при работе с Ruby. Больше информации — в статье.
- How to get an audit log with RailsEventStore today — в туториале рассказывается о том, как можно получить audit log’и с помощью RailsEventStore.
Послушать
Подкасты Ruby Rogue о новостях мира Ruby/Ruby on Rails за ноябрь:
- RR 335: Collaborative and Effective Work Environment with David Richards — гость выпуска David Richards говорит о своем опыте разработки на языке Ruby, о том как эффективно настроить работу команды, о разнице между разработчиками старой закалки и новым поколением.
- RR 336: Refactoring Mature Rails Apps with Ben Orenstein — гость этого выпуска Ben Orenstein рассказывает о том, как он решил заняться своим делом и как происходил процесс разработки собственного курса Refactoring Rails.
- RR 337: Rapidly Mapping API Schemas in Ruby with Adam Cuppy — гость выпуска Adam Cuppy рассказывает о своем докладе на тему «Rapidly Mapping API Schemas in Ruby» на недавно прошедшем Ruby Dev Summit.
Новые выпуски пятого сезона подкастов от RWPod:
The Bike Shed:
131: Nouns For Verbs Sake — основная часть выпуска посвящена обсуждению паттерна Visitor.
133: A Very Special Bike Shed — ведущий подкаста говорит о том, как оптимизировать метод ActiveRecord с помощью языка Rust для Ruby.
Посмотреть
Ruby 3.0 with Yukihiro «Matz» Matsumoto — авторы программы Morning Commute встретились с самим создателем языка Ruby Yukihiro Matsumoto для того, чтобы узнать, что ожидать от новой версии Ruby 3.0.
Go for Rubyists — Kleber Correia — видео-туториал по использованию языка Go для рубистов.
Подборка платных скринкастов от Drifting Ruby в ноябре:
Episode #104 — Speeding Up Tests — туториал по ускорению автотестов с помощью гема parallel_tests
Episode #105 — Continuous Integration with Travis CI — подкаст о том, как непрерывная интеграция может помочь улучшить скорость написания кода, а также автоматизировать запуск тестов.
Episode #106 — Deploying to AWS Elastic Beanstalk | Preview — превью того, как ведущие скринкаста пробуют запустить приложение RoR на AWS Elastic Beanstalk.
Episode #107 — Additional Dependencies in Beanstalk | Preview — превью о дополнительных настройках, необходимых на приложении RoR для запуска на AWS Elastic Beanstalk.
Новая подборка скринкастов от Go Rails в этом месяце:
- Two Factor Authentication With Devise — видеотуториал о том, как с помощью гема devise-two-factor можно добавить дополнительный уровень защиты для Rails приложения.
- Rails Error Tracking with Errbit — туториал учит, как обнаруживать ошибки на Rails с помощью приложения Errbit и гема Airbrake.
- A/B Split Testing in Rails | Preview — превью обзора A/B тестирования в Rails приложениях.
Релизы и библиотеки
RailsInstaller 3.4.0 For Windows Released — обзор релиза RailsInstaller 3.4.0 для Windows.
Rails 5.2.0 beta: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials — что ожидать от релиза Rails 5.2.
Книги
Rails 5 Test Prescriptions — в этом месяце встречайте релиз книги от Noel Rappin «Rails 5 Test Prescriptions». Публикация запланирована на следующий год, но предзаказ уже открыт.
События
Обзор RubyConf 2017 от James Thompson:
- RubyConf 2017 Retrospective — Day 1
- RubyConf 2017 Retrospective — Day 2
- RubyConf 2017 Retrospective — Day 3
← Предыдущий выпуск: Ruby дайджест #11