Ruby/Rails дайджест #27: другий реліз beta-версії Ruby on Rails 6, оновлення JRuby, огляд потенційних фіч в Ruby 2.7

Всім привіт!

Почнемо з того, що спільнота Ruby продовжує роботу над Ruby on Rails 6 — в лютому вийшла друга бета-версія з новим code loader, який отримав назву Zeitwerk, а до кінця квітня очікується реліз стабільної версії фреймворка. Також до кінця березня відкрита реєстрація доповідей на конференцію RubyC, яка пройде у вересні в Києві.

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

Ruby was named Ruby on this day, February 24th, 1993. Happy 26th birthday, Ruby!

Yukihiro Matsumoto

Looks like Ruby 2.6.1 is going to give @a discourse 7% performance for improvement median request time and a large memory saving! ... great job @yukihiro_matz/@_ko1/@k0kubun and team!

Sam Saffron

Rails 6.0 beta2 has been released! It includes the exciting new code loader for Ruby called Zeitwork, as well as a bunch of other fixes and tweaks. Already running in production for both @basecamp and @shopify ??

DHH

Релізи

Rails 6.0.0 beta2 — вийшла друга бета-версія фреймворку Ruby on Rails.

JRuby 9.2.6.0 — оновлення другий по популярності імплементації мови Ruby.

Passenger 6.0.2 — команда Fusion викотила оновлення сервера додатків Passenger.

Spree 3.7.0 — новий реліз open source движка для створення ecommerce-додатків.

Почитати

Introducing Transaction Support in aws-record — гем aws-record тепер підтримує транзакції.

Dream Code First — автор ділиться думкою, чому важливо дотримуватися підходу test-driven development (TDD).

From JavaScript to Ruby: A few of my favourite features — розробник, який перейшов з JavaScript на Ruby, ділиться думкою про найбільш примітних фичах Ruby.

Foreign key Resolve constraint conflict while copying data using topological sort — автор на основі власного досвіду розповідає, як вирішити проблеми з зовнішніми ключами за допомогою топологічної сортування.

Preload, Eager Load and Includes Joins in Ruby on Rails — в чому різниця між preload, eager load, includes і joins в Ruby.

Early Hints and HTTP/2 Push with Falcon — як реалізована технологія HTTP/2 Push веб-сервері Falcon.

Make Delegated Methods in Private Rails — автор показує, як зробити делеговані методи приватними в Rails.

Playing with Ruby Threads and Queues — як використовувати потоки і черги в Ruby.

Rescue from errors with a grace — поради по обробці помилок в Rails.

Patterns for asynchronous read models in infrastructure order without guarantee — шаблони реалізації асинхронних моделей.

Register Transfer Language for CRuby — плюси і мінуси RTL для CRuby.

Form validations with HTML5 and modern Rails — як реалізувати валідацію форм в Ruby on Rails.

Messages on Rails Part 1 — Introduction to Kafka and RabbitMQ — введення у використання черг повідомлень на прикладі Kafka і меседж-брокера RabbitMQ.

Підбірка матеріалів про зміни в Ruby on Rails 6:

Для новачків

A Collection of Tips and Tricks For The Ruby Language — корисні поради про програмування Ruby.

7 reasons why learning SQL is still important for Rails developers — чому знання SQL важливо для розробників на Ruby on Rails.

The Power of Ruby Structs — детальний розбір класу Struct в Ruby.

Inheritance on-the-fly with Ruby on Rails — гайд по міграції баз даних і використання класу ActiveRecord::Migration.

Ruby Comments Explained — як працювати з коментарями в Ruby.

What is Rake in Ruby & How to Use it — що таке Rake і як його правильно використовувати в розробці на Ruby.

Which Ruby IDE You Should Use? — який текстовий редактор варто вибрати для розробки на Ruby.

7 Interesting Ruby Code Examples — цікаві приклади коду, які допоможуть вам у роботі.

How to Write Your Own Classes in Ruby — вчимося створювати класи в Ruby.

Understanding Boolean Values in Ruby — як працювати з булевими операторами значеннями в Ruby.

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

Be Careful Assigning to has_one Relations — автор на прикладі показує, чому варто обережно використовувати зв'язок has_one.

Secure Your Rails Staging Environment with HTTP Basic Authentication — чому потрібно захистити ваше staging-оточення за допомогою базової HTTP аутентифікації.

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

Test Ruby's Speed with and Rails Rack «Hello, World» Apps — простий бенчмарк продуктивності Rails і Rack.

Microbenchmarks vs Macrobenchmarks (i.e. What's a Microbenchmark?) — автор ділиться думкою про те, що таке мікро - і макробенчмарки.

Добірка від AppSignal

Розплутування Classes, Instances and Metaclasses in Ruby — освіжаємо в пам'яті, що таке метаклассы в Ruby і як їх використовувати.

Diving into Ruby's #dup and #clone — в чому різниця між методами #dup і #clone в Ruby.

Добірка від BoltOps

SQS Events and AWS Lambda with Ruby on Jets — автор показує, як підключити SQS events до AWS Lambda.

Введення у фреймворк Jets:

Добірка від Brandon Weaver

Ruby 2.7 — Перечіслімого#tally — автор показує, як використовувати метод Перечіслімого#tally в Ruby 2.7.

Що таке TracePoint в Ruby і як його використовувати в додатках:

Добірка від Honeybadger

Avoiding Junk-Drawer Classes in Ruby — як уникнути створення так званих junk-drawer класів при створенні додатків на Ruby.

Going deep on UUIDs and ULIDs — детальний розбір стандартів ідентифікації UUID і ULID.

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

Page Objects in Rails — що таке page objects і як вони допомагають тестувати програми на Rails.

How I write characterization tests — автор розповідає, що таке characterization tests, і на прикладах показує, як їх використовувати.

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

Using the Find module to count the LOC of a Rails application — освіжаємо в пам'яті, як використовувати модуль Find в Ruby.

How network programming is represented in Ruby — як реалізовано мережеве програмування Ruby.

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

Three Useful Data Migration Patterns for Rails — корисні шаблони міграцій даних, які ви можете використовувати у ActiveRecord.

Refactoring with Design Patterns — The State Pattern — докладно про шаблон проектування State.

Добірка від reinteractive

Professional Git Workflow — автор розповідає про свій підхід до роботи з Git.

Have you serviced your Ruby on Rails Application? — на що потрібно звернути увагу при підтримці додатків на Ruby on Rails.

Добірка від Rewind

Feature Flagging Ruby in Using EightBall — використовуємо feature flags за допомогою гема EightBall.

Controlling Sidekiq Workers on AWS with Fargate and SSM Commands — корисна інструкція з управління Sidekiq-воркерами в додатку на AWS.

How We Keep Your Data Secure — як Rewind компанія забезпечує безпеку даних своїх клієнтів.

Добірка від RubyPlus

Understanding Service Control with systemd — автор показує, як управляти сервісами за допомогою systemd при завантаженні ОС.

Using Foreman to Manage Profile Based Applications — використання Foreman для управління profile based додатками.

Using racecar to Consume Kafka messages in Rails — як використовувати фреймворк Racecar для обміну повідомленнями між брокером Kafka і додатком на Rails.

Running Rails Test Cases in a Docker Container — коротка інструкція по запуску тест-кейсів для Rails в контейнері Docker.

How to Run a Shell Script inside a Docker Container — використання shell script в контейнері Docker.

Ruby and Nokogiri Gem Compatibility — до питання про сумісність гема Nokogiri з різними версіями Ruby.

Using delivery_boy gem to Publish Messages to Kafka — як використовувати гем delivery_boy для передачі повідомлень брокеру Kafka.

ActionText in Rails 6 — інструкція, як використовувати фреймворк ActionText в Rails 6.

Добірка від Scott Watermasysk

Simplifying Shorti's Api — історія оптимізації гема Shorti.

Better Jekyll Excerpts — спрощення роботи з витягами в Jekyll.

Туторіали

How to Protect Individual Resources with Passwords — як реалізувати захист ресурсів паролем.

Refactoring a large case statement — автор ділиться досвідом рефакторінгу великих case statement.

DIY — Create Your Own Rails Generator — інструкція зі створення генераторів в Rails.

— тестування JavaScript-код прямо з Ruby.

Speed up Docker image builds with prebuilt base images — автор ділиться досвідом, як прискорити створення збірок образів Docker програми на Ruby.

The 10-minute Rails Pub/Sub — як створити додаток на Rails, використовуючи publish/subscribe замість model callbacks.

Debugging Sidekiq Workers Using pry-remote on Rails Applications — інструкція по налагодженню Sidekiq-воркеров за допомогою гема pry-remote.

Building A Simple Landing Page With FaaStRuby Functions — покроковий туторіал по створенню serverless-додатки на платформі FaaStRuby.

Цикл статей про створення serverless-додатки на AWS Lambda за допомогою Ruby:

Геми

TraceSpy — обгортка навколо TracePoint.

Heaven's Door — генератор тест-сценаріїв для Capybara.

Semantic Logger — повнофункціональний фреймворк для логування.

Modulation — гем для управління залежностями в додатках на Ruby.

Конференції

wroc_love.rb 2019 — з 22 по 24 березня у польському Вроцлаві відбудеться щорічна конференція wroc_love.rb.

Також відкрита реєстрація доповідей на конференцію RubyC 14-15 вересня в Києві.

Послухати

The Bike Shed

Ruby Rogues

RWpod

Ruby on Rails Podcast

Remote Ruby

Ruby Testing

RubyConf AU 2019 — добірка доповідей конференції RubyConf AU 2019.

Лютневі випуски GoRails:

Підбірка платних скрінкасти від Drifting Ruby у лютому:

Лютневі випуски платних скрінкасти від Ruby Tapas:

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


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

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

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

Финстрип за Лютий 2019, інфо-сайти. Стагнація
Scala дайджест #9: результати дослідження мови, Scala 3, модель TensorFlow в Scala
Навчання без учителя – вбивця математичного моделювання?
Питання ФОПів закрите, працюємо над законом для креативних індустрій. Про зустріч президента й прем'єр єра з ІТ
Зміна формули ІКС 27.02.2019