Ruby/Rails дайджест #21: релиз Rails 5.2.1, бета-версия Hanami 1.3.0, подборка материалов с конференции EuRuKo 2018

Всем привет!

В августе вышла стабильная версия Rails 5.2.1, а популярный тест-фреймворк RSpec обновился до версии 3.8. Сообщество Ruby продолжает изучать Ruby 2.6 — не пропустите серию статей от BigBinary. Чтобы быть в курсе последних тенденций в мире Ruby, посмотрите подборку видео с прошедшей в конце августа конференции EuRuKo 2018.

Почитать

Advanced client stubbing in the AWS SDK for Ruby Version 3 — подробная инструкция, как выполнять client stubbing в версии 3 AWS SDK для Ruby.

Finding where STDOUT/STDERR debug messages are coming from — как узнать, откуда поступают отладочные сообщения stdout и stderr.

Designing Services with dry-rb — как проектировать service objects при помощи библиотеки dry-rb.

Dependency Injection Containers vs Hard-coded Constants — узнайте, в чем разница между контейнерами внедрения зависимостей и hard-coded константами.

Indexes on Rails: How to Make the Most of Your Postgres Database — как ускорить работу Rails-приложения посредством оптимизации индексов в PostgreSQL.

Statements and Expressions in Ruby — разбираем statements и expressions в Ruby на примере кода из гема Sequel.

Adding Code Quality Checks To Your Ruby Test Suite — новичками будет полезно узнать, как добавить инструменты статического анализа кода в набор тестов Rails-приложения.

Rails and the Single Responsibility Principle — насколько Single Responsibility Principle (первый из принципов SOLID) соотносится с фреймворком Ruby on Rails.

Migration from the Wordpress to the own Ruby blogging engine — pros and cons — автор рассказывают о плюсах и минусах перехода с Wordpress на написанную им самим блог-платформу на Ruby.

The Case of the Flaky Test Suite — автор делится опытом работы с набором Flaky тестов в Rails-приложении.

Visualize Ruby Execution — как отобразить выполнение кода на Ruby.

Runtime Introspection in Ruby — автор показывает, как провести интроспекцию методов, переменных и объектов в Ruby.

Ruby Memory Profiling in Practice — краткий гайд по профилированию памяти в Ruby.

Flexible Ruby on Rails Reader Objects — автор на примере показывает, как использовать reader objects в приложении на Rails.

Clean Module Injection in Ruby — как применить monkeypatching посредством внедрения модуля в Ruby и какие преимущества это дает.

The Curious Incident of the Shadow in the Run-Time — узнайте о «подводных камнях» сокрытия переменных в Ruby.

Scaling at Instacart: Distributing Data Across Multiple Postgres Databases with Rails — разработчик из компании Instacart делится опытом масштабирования баз данных PostgreSQL в Rails-приложении.

Testing APIs in Ruby: An overview — автор на основе собственного опыта перечисляет несколько способов тестирования API клиентов в Ruby.

Rails Console Magic Tricks — семь полезных «трюков», которые упрощают работу со встроенной в Rails консолью.

Best image uploader for Rails — Revisited — автор на основе собственного опыта перечисляет лучшие загрузчики файлов для Rails.

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

Delegate to simplify your code — как избавиться от избыточного кода при помощи метода delegate компонента Active Support.

Use the presence method — как и зачем использовать метод presence компонента Active Support.

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

How Can I Use Ruby 2.6 JIT? — презентация Noah Gibbs на конференции Southeast Ruby.

Does ActionCable Smell Like Rails? — разбираемся, что такое Action Cable и как его использовать для работы с WebSockets.

Rake Does What?: A Debugging Story — автор рассказывает об ошибке, связанной с Rake, при обновлении одного из проектов до Rails 5.0 и продолжает детально разбирать причину ошибки в статье Ruby’s Main Object Does What?

Подборка от AppSignal

Changing the Way Ruby Creates Objects — автор описывает, как изменить поведение создания объектов в Ruby.

Ruby gem 2.7: Improvements and bug fixes — что нового в версии 2.7.0 гема AppSignal.

Rails Collection Caching — collection caching в Ruby on Rails.

Push and Pub/Sub in Ruby — как создать Rails-приложение, которое передает данные при помощи модели Publish/Subscribe.

Подборка от BigBinary

Setting up a high performance Geocoder — учимся настраивать геокодирование при помощи гема Geocoder в Rails-приложении.

Продолжение цикла о Ruby 2.6:

Подборка от Codemancers

Ruby 2.5 adds KeyError#receiver and KeyError#key — в Ruby 2.5 добавлены методы KeyError#receiver и KeyError#key, которые упрощают исправление ошибок в коде.

Ruby 2.6 KeyError#initialize accepts message, receiver, and key as arguments — в Ruby 2.6 метод KeyError#initialize принимает аргументы message, receiver и key.

Подборка от Codeship

Familiarize Yourself with Ruby String Encoding — детальный разбор различных способов кодировки строк в Ruby.

Microservices Messaging: Why REST Isn’t Always the Best Choice — статья посвящена настройке взаимодействия между микросервисами.

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

Security tips for rails apps — полезные советы, как улучшить безопасность приложения на Rails.

Exporting significant SQL reports with ActiveRecord — автор рассказывает, как была решена проблема чрезмерного расходования памяти при экспорте «тяжелых» SQL-отчетов.

Подборка от Imaginary Cloud

Protecting a Rails App with Passenger and Nginx — учимся защищать Rails-приложение паролем, используя Passenger и Nginx.

Node.js and Ruby on Rails: a Comparison — сравнение технологий: Node.js+Express.js или Ruby on Rails.

Подборка от Matt Bessey

Rails + React Server Side Rendering, with Webpacker + Hypernova — в этом туториале автор показывает, как осуществить серверный рендеринг React в приложении на Rails при помощи инструментов Webpacker и Hypernova.

Pre-fetching Data for Apollo GraphQL Client — дополнение к предыдущей статье; автор объясняет, как экспортировать GraphQL запросы из компонентов React, чтобы использовать их в Rails-приложении.

Подборка от Mehdi Farsi

The Enumerable module in Ruby: Part II — вторая статья, посвященная модулю Enumerable в Ruby.

Context Binding in Ruby — что такое context binding и как его использовать в Ruby.

OpenStruct in Ruby — разбираемся, что такое класс OpenStruct в Ruby.

Struct in Ruby — изучаем класс Struct и типы структур в Ruby.

The autoload method in Ruby — как использовать метод autoload в Ruby.

Статьи, посвященные исправлению ошибок в Ruby:

Подборка от Reflektive

From Service Objects to Interactors — инструкция, как реализовать Service Object Pattern при помощи гема Interactor.

Validators for Interactors — читайте, как реализовать валидацию данных в интеракторах.

Подборка от RubyGuides

The Ultimate Guide to HTTP Requests in Ruby — освежаем в памяти, какими способами можно отправлять HTTP запросы в приложении на Rails.

Solving the N-Queens Problem With Ruby — упражнение для ума — решаем задачу об N-ферзях при помощи Ruby.

Fast Lookup & Unique Elements With The Ruby Set Class — что такое sets в Ruby, как их использовать, а также в чем их отличие от arrays.

Подборка от Tom Copeland

Invalid or incomplete POST parameters — автор разбирает ошибку, связанную с неправильными или неполными POST параметрами.

Safer JSON munging — как проще и безопаснее вносить изменения в JSON-файлы.

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

Ruby logs and puts not shown in docker container logs — что делать, если логи Ruby не отображаются в логах контейнеров Docker.

Back to the primitive. Testing with simplicity — автор делится простым способом написания тестов в Rails.

How to configure RSpec in Ruby on Rails — новичкам будет полезно узнать, как настроить тест-фреймворк RSpec в Ruby on Rails.

Convert string «true» and string «false» to boolean with Rails — как превратить строки true и false в булевы выражения в Rails.

Factory Bot trait for attaching Active Storage has_attached — как создать Factory Bot объект с файлом, прикрепленным с помощью Active Storage, используя метод trait.

Metaprogramming Ruby cheatcheat — шпаргалка по метапрограммированию в Ruby.

Is Rails still relevant in 2018? — автор делится мнением об актуальности Ruby on Rails в 2018 году.

Google Maps in Rails with Coffee Script — простой гайд, как интегрировать Google Maps в приложение на Rails.

Подборка от Богдана Деньковича

References to changes in Rails 5.2 — подборка ссылок о новшествах в Rails 5.2.

Array#extract! to Active Support 6.0 — автор показывает, как добавить метод Array#extract! В Active Support 6.0.

Туториалы

Upgrade Rails from 5.1 to 5.2 — как обновить приложение с Rails 5.1 до Rails 5.2.

Configuring Circle CI 2.0 for a Real Rails Application — краткий туториал по настройке CircleCI 2.0 для приложения на Rails.

Discover Rails: Active Record — автор показывает, как создать собственный Active Record в Rails.

Build a collaborative playlist over WhatsApp with Rails, Twilio, and Spotify — подробная инструкция, как создать совместный плейлист для WhatsApp при помощи Rails, Twilio и Spotify.

How to use trained Keras and TensorFlow machine learning models within Ruby on Rails — подробная инструкция, как интегрировать построенную при помощи Keras и TensorFlow модель машинного обучения в приложение на Rails.

How I Write Model Tests (Part 1) — автор подробно рассказывает, как писать тесты моделей в RSpec.

Using development dependencies from git in your gem — если вы пишете гемы, то вам полезно будет узнать, как использовать код с GitHub в качестве development dependencies.

Learning How To Deploy Rails — как развернуть Rails-приложение при помощи таких инструментов, как Nginx, Passenger и Capistrano.

Connecting to the Apple Music API from a Ruby (on Rails) application — учимся интегрировать Rails-приложение с Apple Music API.

Writing a Gem with native extensions — автор показывает, как написать гем с нативными расширениями.

Password Generation in Ruby and Rust — сравниваем, как реализовать генерацию паролей в Ruby и Rust.

Релизы

Rails 5.2.1 — вышла стабильная версия 5.2.1 фреймворка Ruby on Rails.

Hanami v1.3.0.beta1 — релиз первой бета-версии v1.3.0.beta1 фреймворка Hanami.

RSpec 3.8 — выкатили новую версию 3.8 популярного тест-фреймворка RSpec.

RubyMine 2018.2.2 (build 182.4129.29) — компания JetBrains представила новую сборку RubyMine 2018.2.2.

Ruby Gems

Paraspec — гем запускает RSpec тесты в несколько потоков, ускоряя тестирование кода.

SidekiqLogAnalyser генерирует отчет воркеров Sidekiq на основе лог-файла.

События

Ruby Meditation #23 — 15 сентября в Одессе пройдет Ruby Meditation #23; среди спикеров будет Nick Sutterer — создатель фреймворка Trailblazer.

Rails Girls Poznan — 21 и 22 сентября в польском городе Познань пройдет бесплатный двухдневный воркшоп Rails Girls.

Послушать

Ruby Testing Culture with Jason Swett — ведущий и гость подкаста обсуждают культуру тестирования в Ruby.

The Bike Shed

165: The Tables Have Turned — ведущие затрагивают множество тем — от CI/CD до структуры команды разработчиков.

166: Are Services the New Rewrite? — основная тема подкаста — Service Oriented Architecture (SOA).

167: I Feel Like We Should’ve Solved This By Now — ведущий и гость подкаста German Velasco обсуждают удаленную работу, языки программирования Elixir и Erlang, блокчейн и Ethereum и многое другое.

Ruby Rogues

RR 374: Ruby 2.5 Enumerable Predicates Accept Pattern Argument with Prathamesh Sonpatki — главная тема подкаста — Rails 5.

RR 375: How to Contribute to Ruby with Sihui Huang — гость подкаста — Sihui Huang из компании Gusto — рассказывает о своем опыте разработки на Ruby.

RR 376: Ruby Performance with Nate Berkopec — участники дискуссии обсуждают производительность Ruby, а также многие другие интересные темы.

RR 377: Upgrading a Rails application incrementally with Luke Francl — ведущие и гость подкаста Luke Francl из команды GitHub обсуждают множество тем, в том числе обновление приложений на Rails и покупку GitHub компанией Microsoft.

RWpod

The Ruby Testing Podcast

Episode 5 — How Brittany Martin Got Started with Programming and Testing — гость подкаста — Brittany Martin — рассказывает о своей карьере в тестировании и разработке на Ruby.

Episode 6 — Continuous Integration/Deployment/Delivery with Marko Anastasov — подкаст посвящен continuous integration/delivery/deployment.

Episode 7 — Testing Anti-Patterns with Kostis Kapelonis — ведущий и гость обсуждают, как не надо тестировать ПО.

Посмотреть

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

Выпуски GoRails в августе, в которых ведущий показывает, как реализовать реферальную программу с нуля и с помощью Stripe, как подписывать Stripe webhooks, а также как добавить автообнаружение часового пояса в приложении на Rails:

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

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


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


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

Похожие статьи:
Україна братиме участь у терміновій зустрічі НАТО, над Ірпенем прибрали ворожий «СУ-30», а загарбники потопили цивільний корабель під...
18 жовтня стало відомо, що при виконанні бойового завдання загинув Юрій «Тай» Осадчук — співробітник компанії N-iX. Юрій приєднався...
The majority of people have never even considered talking to a financial adviser about their finances. One of the main reasons is that they don’t think that with their money situation that they are in need of talking to anyone about...
От редакции:В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам...
У лавах ЗСУ служить чимало українських айтівців. У половині компаній з нашого рейтингу зазначили, що в них мобілізовано від...
Яндекс.Метрика