×Закрыть

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 в августе:


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на volodymyr.vorobiov@rubygarage.org. Спасибо за помощь в подготовке дайджеста команде RubyGarage.


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

LinkedIn

3 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Как обычно, супер контент!

Спасибо, отличный дайджест.

Большое спасибо !

Подписаться на комментарии