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 own the 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

Представник 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 Перечіслімого module in Ruby: Part II — друга стаття, присвячена модулю Перечіслімого в 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, використовуючи метод договорі.

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 from API 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: Services Are 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 Перечіслімого 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 Luke with 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

Опубліковано: 01/09/18 @ 07:00
Розділ Блоги

Рекомендуємо:

DOU Проектор: Escapewithpro — наш досвід розробки travel-сервісу для бронювання турів
Python Challenge, або Як я ознайомився з автоматизованим тестуванням за місяць
7 причин жити і працювати в Харкові для IT-спеціаліста
Релокация в американську глибинку: мої 4 роки у Вісконсині
Product Management дайджест #5: правильні роадмапы, ефект Рингельмана і кращі доповіді з Mind the Product SF