Ruby/Rails дайджест #26: реліз Ruby 2.6.1 і Hanami 2.0.0.alpha1, представлена перша бета-версія фреймворку Ruby on Rails 6

Всім привіт!

Почнемо з того, що спільнота Ruby активно обговорює першу бета-версію фреймворку Rails 6 і його нові фічі. Команда розробників CRuby викотила патч-версію Ruby 2.6.1, в якій виправлено серйозний баг, виявлений у Ruby 2.6.0. Також в лютому закривається прийом доповідей на конференції RubyConfBY, RubyDay і EuRuKo.

Тренди в співтоваристві Ruby

20+ years ago, a guy who disagree with me copied Ruby repo & replaced my name copyright in notices. He wanted his version of the lang. Technically it was license violation but I didn't say anything. I was curious about his ideas. No move for months. The repo disappeared. 1/

Релізи

Rails 6.0.0 beta1 — перша бета-версія фреймворку Ruby on Rails 6.0.

Ruby 2.6.1 — наспів патч Ruby 2.6 — зустрічайте версію 2.6.1.

Hanami 2.0.0.alpha1 — реліз першої альфа-версії фреймворку Hanami.

Hanami 1.3.1 — нова стабільна версія Hanami.

Passenger 6.0.1 — команда розробників Phusion викотила версію 6.0.1 популярного сервера додатків Passenger.

Bundler 2.0.1 — патч-оновлення другої версії менеджера пакетів Bundler.

Почитати

Exploring a critical Net::Protocol issue in Ruby 2.6.0p0 and how it can lead to a security problem — автор розбирається в критичній помилці при використанні Net::Protocol в Ruby 2.6.0 (спойлер: Ruby 2.6.1 цей баг вже виправлений).

Rails handles large number of nested routes better than Sinatra — порівняння продуктивності Rails і Sinatra в обробці вкладених маршрутів.

The Ruby Toolbox — оновився популярний каталог Ruby гемов.

Ruby & AWS Lambda — автор ділиться враженнями про використання Ruby на сервісі AWS Lambda.

Building a Service-oriented Architecture with and Rails Kafka — побудова програми з SOA-архітектурою за допомогою Rails і платформи Kafka.

What's new in Ruby 2.6 — огляд нововведень в Ruby 2.6.

42 performance tips for Ruby on Rails — корисні поради, як збільшити продуктивність Rails-додатків.

GraphQL file upload with Shrine — як реалізувати функцію завантаження файлів в GraphQL за допомогою інструменту Shrine.

Ruby 2.6 Ubuntu packages — пакети з Ruby 2.6 для операційної системи Ubuntu.

The simplicity and power of Ruby Struct — докладно про класі Struct в Ruby.

Active Admin Tips and Performance Optimizations for Rails Apps — поради щодо використання фреймворку Active Admin в Rails-додатках.

Introducing dry-schema — зустрічайте новий гем dry-schema.

Why Ruby doesn't have a Boolean class — чому в Ruby відсутня клас Boolean.

How to Tell the Difference Between a Default and Provided a Value for Optional Arguments in Ruby? — як використовувати приватні константи для передачі опціональних аргументів на Ruby.

Did you know that you can use Bundler without Gemfile? — як використовувати менеджер пакетів Bundler без Gemfile.

How to Reduce Test Interference in Minitest — як знизити ймовірність випадкових падінь тестів при роботі з фреймворком Minitest.

Rails Routes, HTTP Methods and SQL Queries — розбираємося з маршрутизацією в Ruby on Rails.

«!» and «?»: Understanding One of Ruby's Coolest Naming Conventions — корисний для новачків гайд по використанню знаків «!» та «?» в іменуванні методів.

Here to stay — Analyzing RubyGems stats for 2018 — статистика по Ruby гемам від компанії Infinum за 2018 рік.

Ruby Interpreters: What You Need to Know — огляд відмінностей у Ruby-інтерпретаторів.

How to synchronize a directory between two remote hosts with rsync — використовуємо бібліотеку rsync для синхронізації директорії між хостами.

How ActionCable broke Puma — які проблеми виникають при використанні системного виклику select при збільшенні кількості активних сполук у ActionCable в зв'язці з Puma.

Launching Your Own Ruby Gem (part 2): Popularizing it within the Ruby Community — друга частина інструкції, як створити гем на Ruby.

TensorStream: Bringing Machine Learning to Ruby — машинне навчання на Ruby: знайомимося з фреймворком TensorStream.

Rails needs Active Deployment — автор висловлює свою точку зору про складнощі з розгортанням додатків на production в Rails.

3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present — три помилки при використанні ActiveRecord, які можуть сповільнити програми на Rails.

Partial application in Ruby — що таке часткове застосування в Ruby і як його використовувати.

Crafting user notifications in Rails with Active Delivery — інструкція, як реалізувати функцію оповіщення в Rails-додатках за допомогою гема Active Delivery.

A Modern Web Application With Rails — автор ділиться порадами зі створення сучасного програми на Rails.

What i've learned by doing The Gilded Rose Kata (4 refactoring tips) — поради по рефакторінгу на основі підходу The Gilded Rose Kata.

Working With Legacy Code — How Refactoring Let Us Escape The Black Hole — автори діляться досвідом рефакторінгу legacy-коду.

ValueSemantics—A Gem for Making Value Classes — як використовувати гем ValueSemantics в додатку для написання Callable Objects.

Добірка від Andy Croll

Use Multiple Migrations When Adding Database Constraints — використання міграцій при додаванні constraint в структуру бази даних.

Replace Timecop With Rails' Time Helpers in RSpec — вчимося використовувати вбудовані в Rails Time Helpers замість бібліотеки timecop.

Добірка від Appfolio Engineering

How Fast is the Released Ruby 2.6.0? — дивимося на показники продуктивності Ruby 2.6.0.

A Short History of Speed Rails «Hello, World» — як створюються бенчмарки для різних версій Rails.

Добірка від AppSignal

Bindings Lexical and Scope in Ruby — що таке bindings і lexical scopes в Ruby.

An instrumental intro to GraphQL with Ruby — автор показує, як використовувати GraphQL в додатку на Ruby.

Добірка від BigBinary

Target Tracking Policy for Auto Scaling — як налаштувати Auto Scaling в сервісі AWS EC2 за допомогою Target Tracking Policy.

Rails 6 adds ActiveRecord::Relation#pick — огляд методу Relation#pick в Ruby on Rails 6.

Replacing PhantomJS with headless Chrome — автор показує, як використовувати headless Chrome замість PhantomJS.

Добірка від BoltOps

Serverless Ruby Cron Jobs Tutorial: Route53 Backup — в цей туториале автор показує, як створити cron-завдання за допомогою фреймворку Jets.

Serverless Slack Commands with Ruby: Fun with AWS Image Recognition — як створити command додаток для Slack на Ruby, використовуючи фреймворк Jets.

Build an API with the Jets Ruby Serverless Framework — коротка інструкція, як створити API на AWS Lambda.

Добірка від Drifting Ruby

Default Ruby on Rails Options — простий спосіб прискорити конфігурацію програми на Ruby on Rails.

Ruby on Rails 6.0 Beta 1 Deprecations — список змін у компонентах, які більше не підтримуються в Ruby on Rails 6 beta 1.

Добірка від Drivy

Lambda composition in Ruby 2.6 — як створювати lambda-функції в Ruby 2.6.

Ruby tricks for junior developers — поради про Ruby для новачків.

Добірка від Igor Springer

Common mistakes that cause Ruby on Rails apps outages — найбільш часті помилки, із-за яких падають Rails-додатки.

Is `Array` the only option for storing elements in Ruby? — які структури даних для списків значень існують в Ruby.

Not-so-private constants in Ruby — детальний розбір приватних констант в Ruby.

Добірка від Jason Charnes

Using Ruby in 2019 — автор ділиться думкою про стан екосистеми Ruby.

Run.rb — інструмент для компілювання Ruby-коду в WebAssembly.

Добірка від Jason Swett

The Difference Between Integration Tests and Controller Tests in Rails — в чому різниця між integration і controller тестами.

RSpec Mocks and Stubs in Plain English — простими словами про mocks і stubs в RSpec.

Добірка від Mehdi Farsi

4 interesting examples using operator precedence in Ruby — освіжаємо в пам'яті пріоритет операторів в Ruby.

Understanding the Eigenclass in less than 5 minutes — що таке Eigenclass в Ruby.

Гайд по створенню копії об'єкта в Ruby:

The Complete Guide to Create a Copy of an Object in Ruby: Part I

The Complete Guide to Create a Copy of an Object in Ruby: Part II

Добірка від Naturaily

How to remove old database migrations in Ruby on Rails — як прибрати старі версії міграцій бази даних в програмі на Rails.

Chain of responsibility pattern in Ruby on Rails — приклад реалізації шаблону проектування Chain of responsibility на Ruby.

Добірка від Ombu Labs

Notes from The Complete Guide to Rails Performance's Workshop — автор ділиться враженнями від воркшопу, присвяченого продуктивності Ruby on Rails.

Consuming SendGrid and Twilio webhooks in Rails — як відслідковувати статуси відправки Email та SMS повідомлень при використанні сервісів SendGrid і Twilio.

Добірка від RubyGuides

What is A Matrix & How to Use It in Ruby? — спосіб створення матриці в Ruby за допомогою гема Daru.

How to Control a Web Browser From Ruby With Watir — вчимося керувати веб-браузером з Ruby за допомогою Watir.

Helpful Math Concepts For Ruby Developers — які математичні операції треба знати Ruby-розробникам.

What is Dry-rb? — що таке стек гемов dry-rb і які переваги дає його використання.

Добірка від RubyPlus

Unix Signal Processing in Ruby — автор показує, як обробляти Unix сигнали в Ruby.

Tracking Email Open in Rails — як реалізувати функцію відстеження відкриття електронних листів в додатках на Rails.

Ruby Bundler Setup — автор ділиться досвідом конфігурації гема Bundler.

Добірка від Tomas Valent

How to upload remote file from url with ActiveStorage Rails — як реалізувати функцію завантаження файлів через URL за допомогою Active Storage.

Exporting and Importing large amount of data in Rails — автор показує, як експортувати та імпортувати великі обсяги даних в додатках на Rails.

Туторіали

Integrate Rails Application with React Using Webpacker Gem — як інтегрувати React в Ruby on Rails за допомогою бібліотеки Webpacker.

101: Actual refactoring — real life story — автор на прикладі коду реального проекту показує, як виконати рефакторинг коду.

Ruby Bindings and Extensions — детальна інструкція, як інтегрувати бібліотеку на C в додаток на Ruby за допомогою FFI.

How to turn my ActiveRecord migrations asynchronous? — автор описує, як асинхронно зробити міграції в ActiveRecord за допомогою створеного ним гема RailsAsyncMigrations.

Using OAuth for a simple command line script to access google's data — як написати простий CLI-скрипт на основі OAuth для доступу до даних облікового запису Google.

How to use AWS Secrets Manager in Ruby on Rails — вчимося використовувати сервіс AWS Secrets Manager в Ruby on Rails додатках.

Server Side for Rendering React + Apollo GraphQL Client — інструкція, як налаштувати серверний рендеринг на React за допомогою інструменту Hypernova.

Performance profiling for your Rails App with rack-mini-profiler — використовуємо гем rack-mini-profiler, щоб дізнатися, які частини вашого застосування на Rails потребують оптимізації.

Extracting Text From Images Using Ruby — отримання тексту із зображень, використовуючи Ruby.

Faster CSV downloads using Enumerator — інструкція, як прискорити завантаження файлів csv, використовуючи клас Enumerator в Ruby.

Геми

Zeitwerk — орієнтований на багатопоточне виконання code loader для Ruby.

macinbox — бібліотека запускає образ MacOS всередині Vagrant.

jb — проста і продуктивна альтернатива jbuilder.

Jets — фреймворк для побудови serverless додатків.

Події

Ruby Meditation #26 — не пропустіть Ruby Meditation #26, яка пройде 16 лютого в Києві.

Відкрита реєстрація доповідей на конференції:

Послухати

The Bike Shed

Ruby Rogues

RWpod

Ruby on Rails Podcast

Remote Ruby

Подивитися

Ruby from Scratch 2019 — відеоуроки з основ Ruby для новачків.

Січневі випуски GoRails , у яких ведучий показує, як реалізувати функцію автозбереження чернеток у додатку на Rails, а також продовжує цикл скрінкасти, присвячених розгортання production-оточення:

Підбірка платних скрінкасти від Drifting Ruby у січні , у яких ведучий показує, як використовувати фреймворк Action Text в додатку на Rails 5.2, як керувати сесіями в терміналі, а також як працювати з фреймворком VueJS в Rails:

Січневі випуски платних скрінкасти від Ruby Tapas , які навчать вас безлічі корисних речей, в тому числі як працювати з асинхронним кодом, як використовувати метод yield_self і як реалізувати REPL:

Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на kirill@rubygarage.org . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage .


? Попередній випуск: Ruby дайджест #25

Опубліковано: 02/02/19 @ 11:00
Розділ Різне

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

Визначаємо вартість декоратора в Golang
Финстрип за Січень 2019, інфо-сайти. Місяць приніс відкат майже в 2 рази
React Hooks — огляд можливостей нового API
Розробка реактивних та розподілених систем з Vert.x
Токсичний HR: дії, які отруюють команду