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

Похожие статьи:
С 2011 года мы ведем рейтинг крупнейших ИТ-компаний Украины. Сначала это был ТОП-25, но с этого года он превратился в ТОП-50. За первое...
Машинне навчання давно не дивує, коли мова про комп’ютерний зір або обробку природної мови. Але стрімкий розвиток великих мовних...
До вашої уваги дайджест навчальних програм для тих, хто починає свою кар’єру в ІТ. В цьому номері зібрані можливості, актуальні...
У чаті зможуть отримати консультацію військовозобовʼязані, чинні військові та їхні родини. Про запуск нового продукту...
11 серпня Президент України Володимир Зеленський підписав Закон «Про стимулювання розвитку цифрової економіки...
Яндекс.Метрика