Ruby/Rails дайджест #18: релизы JRuby 9.2.0.0 и Passenger 5.3.1, закрытие проекта Paperclip, вступление в силу GDPR

Привет всем! Май был чрезвычайно насыщен новостями и событиями в Ruby-сообществе.

Прежде всего, в мае было несколько релизов, включая JRuby 9.2.0.0, Passenger 5.3.1 и RubyMine 2018.2 EAP. Также компания Thoughtbot объявила о закрытии проекта Paperclip. Кроме того, в конце мая в странах ЕС вступили новые правила защиты персональных данных (GDPR), которые стоит учитывать при разработке приложений.

Почитать

Deprecating Paperclip — команда Thoughtbot прекращает работу над проектом Paperclip.

Introducing support for Amazon S3 Select in the AWS SDK for Ruby — AWS SDK для Ruby теперь поддерживает Amazon S3 Select. Узнайте, как его настраивать.

TestProf II: Factory therapy for your Ruby tests — оптимизируем тестирование приложений на Ruby с помощью TestProf — набора для профилирования и оптимизации автотестов.

Rails 5.2: ActiveStorage highlight — подробный разбор Active Storage в Rails 5.2.

New Class Naming Rules in Ruby — статья о новых правилах именования классов в Ruby 2.6.

Building ruby with jemalloc — автор показывает, как снизить использование памяти приложениями на Ruby при помощи jemalloc.

First Steps with Sinatra as a Rails Developer — Part 2 — вторая статья из цикла о создании приложений на Ruby с помощью фреймворка Sinatra; автор показывает, как создать full-stack приложение.

Improved YAML Support in the Updated RubyMine 2018.2 EAP — улучшенная поддержка YAML в обновленной RubyMine 2018.2 (сборка 182.2574.11).

PRPL on Rails Part 3: Service Workers — заключительная часть цикла о том, как паттерн PRPL помогает ускорить работу Rails-приложений; эта статья посвящена кешированию при помощи service workers.

The Big Friendly Errorpage — новая форма сообщения об ошибке в сервисе Passenger.

Ruby on Rails vs PHP — статья поможет начинающему разработчику сделать выбор между PHP и Ruby on Rails.

Finding slow ActiveRecord queries with Scout — находим медленные запросы в ActiveRecord c помощью Scout.

The recommendation of structured logging and the reason I have made Ougai for Ruby — чем полезны структурированные журналы (structured logs).

Ruby’s Rack Push: Decoupling the real-time web application from the web — как снизить связанность приложения при помощи Rack Push в Ruby.

Ruby MethodFinder is still alive — как Method Finder в языке Smalltalk вдохновил его написать гем для реализации данного функционала в Ruby.

How To Avoid The Ruby Class Variable Problem — читайте, как избежать проблемы с переменными класса (class variables) в Ruby.

Does operator overriding exist in Ruby? — поддерживает ли Ruby переопределение оператора.

Crystal is not Ruby Part 1 — в первой части цикла автор подробно разбирает недостатки языка Crystal по сравнению с Ruby.

Ruby’s New Exception Keyword Arguments — автор рассказывает о новых именованных аргументах (keyword arguments) в Ruby 2.6: exception: false и exception: true.

Variable Names: Avoiding Conjunctions — запоминаем правило именования переменных — не использовать союзов (например, and, or и but).

Hot Module Reloading with Webpacker — как облегчить frontend-разработку на Rails с помощью hot module reloading библиотеки Webpacker.

Ruby on Rails — Advanced Tools (part 3) — продолжение цикла о Ruby on Rails; статья посвящена продвинутым инструментам для разработки на Rails, таким как HTTP-клиенты и библиотеки для фоновых задач.

Paginating Ruby on Rails Applications with Pagy — автор рассказывает о преимуществах использования гема Pagy для пагинации.

Actionable Tips to Improve Web Performance with Rails — советы о том, как улучшить производительность веб-приложений на Rails.

Timeout: Ruby’s Most Dangerous API — почему не стоит использовать модуль Timeout в Rails.

Performance Impact of Removing OOBGC — Aaron Patterson рассказывает, почему команда GitHub отказалась от использования Out of Band Garbage Collector.

Do we need dependency injection in Ruby? — стоит ли использовать внедрение зависимостей (dependency injection) в приложениях, написанных на Ruby.

Feature Tests vs Integration Tests vs Unit Tests — чем отличаются feature tests, integration tests и unit tests в Ruby on Rails.

Introducing: Stealth — автор рассказывает о Stealth — новом open source фреймворке для создания чатботов.

Everything There Is to Know About Associations in Rails — освежите в памяти, что такое ассоциации — связи между моделями в Action Cable.

Coding Sidekiq Workers the Right Way — автор дает полезные советы о том, как создавать workers в Sidekiq.

Interactor Objects — почитайте, как Interactor-объекты помогают перенести бизнес-логику из контроллеров в модели.

Pry Tips and Tricks — статья полезна тем, кто пользуется интерактивной консолью Pry.

The Case for Before_validation Callback: Complex State Normalization — когда стоит использовать колбэк before_validation при работе с Active Record в Rails.

Arel with Wharel — как гем Wharel упрощает написание запросов в Active Record.

Подборка статей о новом регламенте Евросоюза о защите персональных данных (GDPR), который вступил в силу 25 мая:

Подборка от Andy Croll

A job should know whether to run itself — учимся настраивать фоновые задачи в приложении на Rails.

Active Record’s first and last may not mean what you think — как правильно использовать методы .first и .last в Active Record.

Подборка от Appfolio Engineering

To Sleep, Perchance to Dream: Rails Ruby Bench and Sleepy GC — узнайте, стоит ли использовать Rails Ruby Bench вместе с Sleepy GC.

Upgrading Rails 4 Controller Tests to Rails 5 — как обновить тесты контроллеров при переходе с Rails 4.2 на Rails 5.2.

Подборка от AppSignal

Client-side caching in Rails: conditional GET requests — читайте, как ускорить работу приложений на Rails, используя встроенную поддержку запросов GET с условием (conditional GET).

Ensuring execution, retrying failures and reraising exceptions in Ruby — несколько способов «спасения» исключений в приложении на Rails.

Speeding up your app’s navigation with Turbolinks — как инструмент Turbolinks позволяет ускорить навигацию в Rails-приложениях.

Ruby’s magical Enumerable module — читайте, какие возможности дает модуль Enumerable в Ruby on Rails.

Подборка от Arkency

Rewriting deprecated APIs with parser gem — узнайте, как заменить устаревшие API к Rails Event Store в Rails-приложениях.

correlation id and causation id in evented systems — как использовать атрибуты correlation_id и causation_id при работе с системами событий в Rails.

Подборка от BigBinary

Deploying Docker Registry on Kubernetes using S3 Storage — автор показывает, как развернуть Docker-регистр в кластере сервиса Kubernetes при помощи AWS S3.

Rails 5.2 sets Ruby version in Gemfile and adds .ruby-version file by default — продолжение цикла статей о Rails 5.2; теперь версия Ruby отображается в Gemfile по умолчанию.

Increase reliability of background job processing using super_fetch of Sidekiq Pro — автор показывает, как улучшить надежность обработки фоновых задач при помощи стратегии super_fetch в Sidekiq Pro.

How to mitigate DDoS using Rack::Attack — в этом туториале автор показывает, как Rack::Attack позволяет снизить количество запросов при DDOS-атаке.

Rails 5.2 fixes query caching in MySQL and PostgreSQL adapters — в Rails 5.2 исправлена ошибка кеширования запросов в адаптерах MySQL и PostgreSQL.

Generating filmstrip using puppeteer for better debugging — улучшаем поиск ошибок в приложениях на Rails с помощью функции Filmstrip и инструмента Puppeteer.

Ruby 2.5 added lazy proc allocation for block parameters — статья из серии о Ruby 2.5; автор показывает, как использовать lazy proc allocation при передаче параметров.

APISnapshot built using Elm and Ruby on Rails is open source — инструмент APISnapshot, созданный командой BigBinary, теперь open source.

Faster JSON generation using PostgreSQL JSON function — узнайте, как ускорить генерацию JSON в приложении на Rails с помощью функций PostgreSQL JSON.

Rails 5.2 introduces allow_other_host option to redirect_back method — как использовать опцию allow_other_host в методе redirect_back в Rails 5.2.

Подборка от Heroku

Rails 5.2 Active Storage: Previews, Poppler, and Solving Licensing Pitfalls — учимся использовать Active Storage в Rails 5.2 при развертывании приложений на платформе Heroku.

A Rock Solid, Modern Web Stack — подробная инструкция о том, как создать приложение при помощи Rails API, ActiveAdmin и Create React App на платформе Heroku.

Securing Dependencies for Rails 5.2 Active Storage — автор делится опытом устранения уязвимостей в Rails 5.2 Active Storage, связанных с функционалом создания превью-версий PDF- и видеофайлов.

Подборка от Nopio

How to Setup Rails Application on Heroku — инструкция по развертыванию Rails-приложения на платформе Heroku.

How to Organize Large Rails Applications — автор дает советы, как оптимально организовать структуру крупного Rails-приложения.

Подборка от Paweł Dąbrowski

Create a beautiful chart with just one line — как создавать диаграммы в приложении на Rails с помощью гемов Chartkick и Chartable.

Add beautiful code syntax highlighting to your Ruby on Rails app — как добавить подсветку синтаксиса кода в приложение на Rails.

Подборка от Paweł Urbanek

Quick Tip — Increase Your Productivity with Rails Console Aliases — узнайте, как использование псевдонимов (aliases) поможет вам повысить продуктивность при разработке Rails-приложений.

Screencast — My Ruby on Rails Workflow, Productivity Tips and Tools — в этом скринкасте автор рассказывает о своем workflow и перечисляет инструменты, которыми он пользуется для разработки приложений на Rails.

Hosting Static Site on Dokku with Free Cloudflare CDN and SSL — как развернуть статический сайт на сервисе Dokku с помощью Cloudflare CDN и SSL-сертификата.

Подборка от Reinteractive

Best practices: Async Reverse Geocoding with Ruby and Geocoder — автор показывает, как ускорить обратное геокодирование (reverse geocoding) в Rails-приложении с помощью гема Geocoder.

Accessibility on Rails — как сделать ваше Rails-приложение удобнее для пользователей с ограниченными возможностями.

Five small hacks for your Ruby projects — 5 полезных советов для проектов на Rails.

Why should you learn multiple programming languages? — автор говорит о том, почему изучение нескольких языков программирования полезно для разработчика.

Managing Stripe subscription payments in Rails — как реализовать функционал оплаты подписок с помощью Stripe API в приложении на Rails.

Подборка от RubyGuides

How to Use The Strategy Design Pattern in Ruby — учимся использовать шаблон проектирования Strategy в Ruby.

How To Dramatically Improve Your Ruby Code With Fundamental OOP Principles — улучшаем код на Ruby, используя такие понятия объектно-ориентированного программирования, как cohesion и coupling.

How To Use The Singleton Pattern In Ruby — автор делится мнением о том, стоит ли использовать паттерн Singleton в Ruby.

Why Do We Use Nil? — как использовать объект Nil при разработке на Ruby правильно.

Подборка от Tomas Valent

Rails Bounded Contexts — автор рассказывает об ограниченных контекстах (bounded contexts) в Rails.

Ruby class methods syntax — освежаем в памяти способы описания методов класса (class methods) в Ruby.

Content-Type application/json by default in Rails 5 — как сделать так, чтобы приложение с Rails API воспринимало все запросы в формате JSON по умолчанию.

Туториалы

Setting up a BDD Stack on a Rails 5 Application — подробная инструкция, как подобрать инфраструктуру для behavior-driven development (BDD) в приложении на Rails 5.

Rails Frontend Testing with JavaScript Insights — в данном туториале автор показывает, как протестировать клиентскую часть приложения на Rails.

Simple String encryption in Rails — инструкция, как настроить шифрование User ID в Rails-приложении.

Email with Amazon SES from Rails on EC2 — в этом туториале автор показывает, как использовать сервис отправки электронных писем Amazon SES в Rails-приложениях на Amazon EC2.

Taming Legacy Ruby Code Using the «Sprout Method» Technique — используем sprout method для исправления унаследованного кода.

Serverless Ruby with Docker and Apache OpenWhisk — туториал о том, как развернуть приложения на Ruby в serverless-среде при помощи Docker и Apache OpenWhisk.

How to Build an Effective Initial Deployment Pipeline — автор делится опытом настройки процесса непрерывной интеграции и развертывания (CI/CD).

Building A Creative & Fun API Client In Ruby: A Builder Pattern Variation — автор показывает, как создать API-клиент, используя шаблон проектирования Builder.

Securing User Emails in Rails — как обеспечить безопасность электронных писем пользователей в Rails-приложении.

Релизы

JRuby 9.2.0.0 — представлена новая версия JRuby 9.2.0.0.

RubyGems 2.7.7 — вышла версия 2.7.7 системы управления пакетами RubyGems.

RubyMine 2018.2 EAP — компания JetBrains выпустила обновленную сборку RubyMine 2018.2 EAP 182.2574.11.

Passenger 5.3.1: crash + spawn hotfix — вышла новая версия популярного сервера Passenger 5.3.1.

Jekyll 3.8.1 — новая версия популярного генератора статичных сайтов Jekyll 3.8.1.

Ruby Gems

MethodFinder — гем Method Finder для Ruby.

Wharel — гем позволяет писать краткие Arel-запросы в ActiveRecord.

Послушать

The Bike Shed

  • 152: I Look For Stories — ведущие и гость подкаста Nickolas Means обсуждают множество тем: от storytelling до идеи лицензирования разработчиков ПО.
  • 153: I Would Lose 3,000 Crates, and I Would Lose 12,000 More — ведущие обсуждают логическую репликацию в PostgreSQL 10, коды ошибок в Heroku, а также другие интересные темы.
  • 154: We All Have Work to Do — Eileen Uchitelle рассказывает, какие новшества будут реализованы в 6-й версии Ruby on Rails.

Ruby Rogues

RWpod

Посмотреть

RailsConf 2018 videos from Confreaks — подборка видео с прошедшей в апреле конференции RailsConf 2018.

An Introduction to Event Sourcing — доклад о том, как шаблон проектирования Event Sourcing помогает создавать domain-centric приложения на Rails.

Exploding Rails — как улучшить структуру приложения на Rails при помощи наборов гемов rom-rb и dry-rb.

Майские выпуски GoRails, в которых ведущий подробно рассказывает о третьем принципе SOLID (Liskov substitution principle), показывает, как осуществить миграцию с Paperclip на Rails Active Storage, как использовать слоты в фреймворке Vue.js, а также продолжает показывать возможности ActionCable:

Подборка платных скринкастов от Drifting Ruby в мае:

Майские выпуски платных скринкастов от Ruby Tapas:

События

В июне Rails Girls проведут бесплатные двухдневные воркшопы в Европе:

Конференции

RubyC — 2 и 3 июня в Киеве состоится крупнейшая в Европе Ruby-конференция RubyC. Спикеры расскажут о последних трендах в мире Ruby, в том числе о JRuby, Clean Architecture и Machine Learning.

Paris.rb conf — 28 и 29 июня в Париже пройдет конференция Paris.rb conf 2018, где участники смогут обменяться опытом, послушать интересные доклады, а также весело провести время.

EuRuKo 2018 — EuRuKo, знаковое событие для Ruby-сообщества Европы, 2018 состоится 24 и 25 августа в Вене (Австрия), билеты уже в продаже!


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. . Спасибо за помощь в подготовке дайджеста команде RubyGarage.


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

Похожие статьи:
Антивирусная компания ESET предупреждает о росте активности новой угрозы для Android – трояна-вымогателя Lockerpin, который распространяется...
Поганий продакт-менеджер — хороший тато підприємець.Народна мудрість Привіт, мене звати Вова, і я — продакт-менеджер, автор подкасту...
Время: вторник + четверг, 19:00 — 21:00 4 февраля стартует курс QA Auto. На данном курсе вы узнаете, что такое автоматизированное тестирование...
Фінтех-компанія NovaPay, що входить до групи NOVA разом із «Новою поштою», повідомила про зміну керівника. Ігор Сироватко завершує роботу...
«Нова пошта» продовжує поступовий перехід на новий мобільний застосунок. Станом на сьогодні ним користуються понад 3,5 млн активних...
Яндекс.Метрика