Ruby/Rails дайджест #17: релиз финальной версии Rails 5.2.0, версия Hanami v1.2.0, материалы с RailsConf 2018

Привет всем! Апрель выдался чрезвычайно продуктивным для Ruby-сообщества.

Начнем с того, что были официально представлены Hanami v1.2.0 и финальная версия Rails 5.2.0, а также Nginx Unit 1.0. Кроме того, вышло множество материалов с конференций RailsConf 2018 и wroc_love.rb.

Почитать

10 Key Points of Ruby Development: Special Interview with Matz and Mr. Miyagawa of Rebuild.fm — 10 ключевых моментов из интервью создателя Ruby Юкихиро «Matz» Мацумото ведущему популярного подкаста Rebuild.fm.

RailsConf 2018 Edition — подборка материалов с RailsConf 2018.

How to build rock-solid Ruby on Rails apps with BDD — как создавать приложения на Rails с помощью Behavior-Driven Development (BDD).

PRPL on Rails Part 1: Code Splitting — автор рассказывает, как ускорить работу приложения на Rails с помощью разделения кода.

Web Scraping for Fun — создаете поискового робота? Из этой статьи вы узнаете о четырех разных способах веб-скрейпинга.

Refactoring Rails configs for deploy to Kubernetes — показывает, как выполнить рефакторинг конфигурации Rails-приложения, чтобы развернуть его в кластере Kubernetes.

2018 Ruby on Rails Developer Community Survey — свежий доклад о том, какие инструменты наиболее часто используются сообществом Ruby-разработчиков.

Modern Backend Developer in 2018 — какими технологиями должен владеть современный бекенд-разработчик.

ImageProcessing 1.0 Released — автор подробно описывает преимущество новой версии популярного гема ImageProcessing для обработки изображений.

Interactive debug sessions in RSpec with Capybara — статья рассказывает об интерактивной отладке Rails-приложения с помощью фреймворка RSpec и гема Capybara.

Introducing sidekiq_profiling_middleware, a tool for profiling Sidekiq — как профилировать Sidekiq-задачи при помощи нового гема sidekiq_profiling_middleware.

Improve Performance and Save Money with These Software Development Tricks — узнайте, как оптимизировать работу приложения на Ruby on Rails.

How I Built Timeasure: Part 2 — Collecting Measurements & Supplying Configuration — продолжение цикла статей о создании гема Timeasure; вторая часть посвящена настройке конфигурации и измерений.

4 levels of the data validation in a Rails application you should be aware of — автор описывает четыре уровня проверки данных, о которых вы должны знать.

Maps with React Native, Rails, and PostgreSQL — статья научит вас, как реализовать функционал геолокации в приложении на React Native, Rails и PostgreSQL.

Top 10 errors from 1000+ Ruby on Rails projects (and how to avoid them) — 10 наиболее распространенных ошибок в проектах на Ruby on Rails, а также о том, как их предотвратить.

Migrating from state_machine to aasm in Rails — автор делится опытом перехода со state_machine на aasm при миграции крупного приложения с Rails 4 на Rails 5.

4 (of many) awesome additions in Ruby 2.5.1 (and how to install it) — автор подробно останавливается на четырех особенностях Ruby 2.5.1.

Rails: Callback Hell and Pipeline Heaven. Let’s talk about the problem — статья покажет вам, как предотвратить «ад обратных вызовов» (callback hell) в Rails.

Can JWT be used for sessions? — стоит ли использовать JSON Web Token (JWT) при работе с сессиями.

Using singleton objects as default arguments in Ruby — статья научит вас использовать синглтон-объекты в качестве аргументов по умолчанию.

Ruby Concepts — Singleton Classes — подробное объяснение, что такое синглтон-классы (singleton classes) в Ruby.

Use Hash#fetch when using Rails params in controllers — почему стоит использовать метод #fetch при вызове аргументов в приложении на Rails.

How to Use the Decorator Pattern in Ruby — узнайте, в каких случаях стоит использовать шаблон проектирования Декоратор (Decorator).

Подборка от AppSignal

Russian doll caching in Rails — как можно оптимизировать кеширование матрешкой (Russian Doll caching) в Rails.

Rescuing exceptions in Ruby — как правильно использовать rescue при работе с исключениями в Ruby.

Rails’ built-in cache stores: an overview — обзор встроенных хранилищей кеша в Rails.

ActiveRecord performance: the N+1 queries antipattern — как решить проблему запроса N+1 при работе с ActiveRecord в Rails.

Подборка от BigBinary

Ruby 2.5 supports measuring branch and method coverages — автор показывает, как использовать библиотеку Coverage в Ruby 2.5 для измерения степени покрытия кода тестами.

Ruby 2.6 added option to raise exception in Kernel#system — в Ruby 2.6 добавлена возможность вызывать исключения в Kernel#system.

Ruby 2.5 enables Thread.report_on_exception by default and we get more info when threads die — статья посвящена работе с исключениями, в частности, с методом Thread.report_on_exception, который в Ruby 2.5 активирован по умолчанию.

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

Rails Ruby Bench: What Is It and Why Should You Care? — данная статья рассказывает, что такое Rails Ruby Bench и как вы можете использовать этот инструмент при создании Rails-приложений.

Ruby 2.6 and Ahead-Of-Time Compilation — узнайте, как заранее задействовать JIT-компилятор в Ruby 2.6 preview 1 для приложений на Rails.

Ruby Coordinator Processes for Fork Servers — когда использовать и когда не использовать паттерн Координатор (Coordinator).

Подборка от Codeship

Building Cloud Apps with Civo and Docker Part IV: Kubernetes — четвертая часть цикла о создании облачного приложения при помощи Civo и Docker; описывает, как развернуть приложение при помощи платформы Kubernetes.

Refactoring for the Tell Don’t Ask Pattern — как сделать рефакторинг кода в соответствии с принципом Tell Don’t Ask.

Подборка от Engine Yard

Do We Still Need RVM Gemsets? — автор делится опытом использования гемсетами в Ruby Version Manager.

5 Commercial Use Cases Continue to Prove the Value of Ruby on Rails — преимущества фреймворка Ruby on Rails на примере крупных и успешных проектов.

Подборка от End Point

Using FFI in Ruby — узнайте, как использовать FFI (интерфейс сопряжения функций с кодом на другом языке программирования) для оптимизации производительности приложений на Ruby.

Ruby on Rails: Russian Translation and Pluralization — автор делится опытом локализации приложения на Rails: перевод и образование множественного числа в русском языке.

RailsConf 2018 Summary: The Train is Still Moving — статья подводит итоги конференции RailsConf 2018.

Подборка от Heroku

A Dive into Ruby CVE-2017-17405: Identifying a Vulnerability in Ruby’s FTP Implementation — команда Heroku обнаружила уязвимость, связанную с реализацией FTP в Ruby.

MJIT: A Method Based Just-in-time Compiler for Ruby — статья рассказывает о принципах работы MJIT — реализации JIT-компилятора, основанного на method-based подходе. Кроме того, там же есть интересная дискуссия с участием Юкихиро «Matz» Мацумото.

Подборка от Kir Shatrov

Asynchronous Active Record migrations — что такое асинхронные миграции и для чего они используются в команде разработчиков Shopify.

Debugging Ruby processes in Kubernetes — узнайте, как произвести отладку приложения на Ruby в Kubernetes.

Подборка от Netguru

TIL #5: How to work with Conditional Assignment Operator — в этой статье автор показывает, как избежать проблем при использовании Conditional Assignment Operator.

First Steps with Sinatra as a Rails Developer — Part 1 — первая часть цикла о создании приложения на Ruby с помощью фреймворка Sinatra.

Также вышли две последних статьи из цикла о SOLID-принципах:

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

How to Migrate a Ruby on Rails App from Heroku to Dokku — автор научит, как мигрировать Ruby on Rails приложение с Heroku на PaaS-платформу Dokku.

Direct, Secure Rails Client-side File Uploads to AWS S3 Buckets — работая над приложениями на Rails, вы, вероятно, использовали облачный сервис Amazon S3 для хранения объектов. Узнайте, как безопасно и напрямую загружать файлы в S3 из клиентской части приложения.

Подборка от Semaphore

Rails Testing Handbook: A Free Ebook to Help You Build Better Apps — Semaphore выпустили руководство по тестированию приложений на Ruby on Rails.

Lies, Damn Lies, and the State of Testing in Rails — исследование о том, насколько в среднем Rails-приложения покрыты автотестами.

Подборка от Abe Voelker

Автор написал серию из пяти статей о том, как развернуть Rails-приложение при помощи Kubernetes Engine:

Туториалы

Rails 5.2 and Active Storage — the new approach to file uploads — Active Storage — одна из основных особенностей Rails 5.2; научитесь адаптировать проект на Rails к Active Storage.

How To Create A Memory Leak in Ruby — чтобы обнаружить утечку данных в приложении на Ruby, нужно знать, что это и как она выглядит. Этот туториал научит вас намеренно создавать утечки данных, чтобы потом вы могли легко их обнаруживать и устранять.

Stop robots and crawlers causing errors in your Rails application — узнайте, как уберечь ваше приложение на Rails от ошибок, возникающих по вине поисковых роботов.

Deploy your Rails app faster with Mina, Phusion Passenger, Ngnix and MySQL on Ubuntu 14.04 — как быстро развернуть приложение на Ruby on Rails при помощи таких инструментов, как Mina, Phusion Passanger, Nginx и MySQL.

Developing a Ruby on Rails app with Docker Compose — как создать приложение на Ruby on Rails при помощи инструмента Docker Compose.

Executing commands in Pods using K8s API — этот туториал поможет вам узнать больше о работе с Kubernetes, в частности о том, как выполнять команды в контейнерах (pods).

Handling Errors Gracefully — автор делится опытом написания обертки для имплементации result object в Rails-приложениях.

How to test that an email was sent — тестируем, был ли отправлен имейл в Rails-приложении.

db:migrate:down and Bash completion — экономим время при откате миграции, используя автозаполнение в консоли.

Add SMS Notifications to Your Rails App Using Twilio — как внедрить функционал SMS-оповещений в приложении на Rails.

The Ultimate Guide to Ruby Timeouts — туториал посвящен настройке таймаутов в популярных Ruby-гемах.

Full text searching Linux man pages with Elasticsearch — научитесь настраивать полнотекстовый поиск в справочных страницах Linux при помощи Elasticsearch.

Building a static blog using Jekyll and Strapi — как создавать статический блог при помощи Jekyll и Strapi.

Linear Regression in Ruby — как построить линейную регрессию (один из простейших алгоритмов машинного обучения) на Ruby.

Testing Example Code In Your Jekyll Posts — примеры кода в блогах и статьях зачастую содержат ошибки. Узнайте, как избавиться от подобных проблем в блог-постах на Jekyll.

Profiling Ruby’s Memory Allocation with TCmalloc — туториал научит вас визуализировать использование памяти компилятором Ruby при помощи инструмента TCmalloc.

Релизы

Rails 5.2.0 FINAL — официальный релиз финальной версии фреймворка Ruby on Rails 5.2.0 с новым Active Storage, Redis Cache Store и другим функционалом.

Hanami v1.2.0 — вышла новая версия v1.2.0 фреймворка Hanami.

NGINX Unit 1.0 — представлен NGINX Unit 1.0 — новая версия популярного веб-сервера и сервера приложений.

RubyMine 2018.1 — новая версия RubyMine 2018.1.

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

Ruby Gems

MemoizedOnFrozen — гем позволяет использовать мемоизацию для неизменяемых объектов.

ApiStruct — предоставляет возможность строить обертки с одинаковым интерфейсом под разные API.

sidekiq_profiling_middleware — позволяет профилировать Sidekiq-задачи.

The WordpRSS Ruby gem — гем поможет вам встроить RSS-агрегатор в приложение на Rails.

Embedded — встраивает объект-значения в объекты Active Record.

ScoutDogstatsd — позволяет экспортировать показатели производительности Rails-приложения через клиент DogStatsD.

Послушать

The Bike Shed

  • 149: E With an Umlaut — ведущие затрагивают много интересных тем, в том числе баг в Ruby при попытке разграничить модули в монолитном приложении Shopify.
  • 150: I Fight For the Users — ведущие делятся опытом разработки на Rails и JavaScript.
  • 151: Scheming About Schema — в этом подкасте ведущие обсуждают подготовку в конференции RailsConf 2018.

Ruby Rogues

RWpod

Посмотреть

Rails API: JSON Web Token Part 3 — видеотуториал о том, как создать JWT-токен в контроллере.

Подборка видео с конференции wroc_love.rb 2018:

Апрельская подборка от GoRails, в которой ведущий объясняет первые два принципа SOLID, показывает, как интегрировать компоненты Vue.js в представления (views) Ruby on Rails и как писать тесты для Rack middleware:

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

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

События

Ruby Meditation #22 — 19 мая в Днепре пройдет Ruby Meditation #22; на ивенте вы узнаете, как создать Slack-бота на Ruby и какие новые возможности дают функциональные объекты.

Rails Girls Athens v3 — 4-5 мая в Афинах Rails Girls проведут бесплатный двухдневный воркшоп по Ruby on Rails.

Rails Girls Tokyo — 18 мая Rails Girls проведут бесплатный двухдневный воркшоп по Rails в Токио.

Конференции

RubyHACK — 3-4 мая в Солт-Лейк-Сити (США) пройдет конференция RubyHACK 2018 с известными спикерами и интересными темами.

Ruby Unconf — 5 и 6 мая Гамбург принимает Ruby Unconf 2018 — конференцию, где сами участники решают, каких спикеров слушать и какие темы они хотят обсудить.

ROSS Conf Amsterdam — 11-12 мая в Амстердаме пройдет конференция для OSS-разработчиков.

Balkan Ruby — 25 и 26 мая в Софии проводится конференция Balkan Ruby, где среди спикеров Serdar Dogruyol — создатель языка Crystal и фреймворка Kemal.


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


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

Похожие статьи:
Що краще для розробника та інженера — Linux, Windows чи macOS? Це питання хвилює багатьох технічних спеціалістів, зокрема початківців...
Команда R&D инженера Олега Паничева заняла 5-е место на Kaggle в конкурсе по прогнозированию эпилептических приступов...
Длительность курса: 24 академических часов.График занятий: суббота — 14:30-16:30; воскресенье — 10:30-14:30 Друзья,...
Цифровая революция открыла новые возможности для бизнеса. Вместе с этим, она поставила много новых задач...
Как известно, анонс нового флагманского смартфона LG G5 состоится 21 февраля, в преддверии международного...
Яндекс.Метрика