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

Всем привет!

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

Тренды в сообществе Ruby

  • 24 февраля языку Ruby исполнилось 26 лет

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

Yukihiro Matsumoto February 24, 2019

  • Сооснователь Discourse отметил 7% уменьшение времени ответов и значительное снижение потребления памяти после перехода на Ruby 2.6.1

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

Sam Saffron February 4, 2019

  • DHH объявил, что Basecamp и Shopify уже используют вторую бета-версию Ruby on Rails 6 в продакшене

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 February 25, 2019

Релизы

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.

Resolve foreign key constraint conflict while copying data using topological sort — автор на основе собственного опыта рассказывает, как решить проблемы с внешними ключами при помощи топологической сортировки.

Preload, Eager Load, Includes and 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 Private in Rails — автор показывает, как сделать делегированные методы приватными в Rails.

Playing with Ruby Threads and Queues — как использовать потоки и очереди в Ruby.

Rescue from errors with a grace — советы по обработке ошибок в Rails.

Patterns for asynchronous read models in infrastructure without order 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 Should You 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 Rails and Rack „Hello, World” Apps — простой бенчмарк производительности Rails и Rack.

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

Подборка от AppSignal

Unraveling 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 —  Enumerable#tally — автор показывает, как использовать метод Enumerable#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 in Ruby 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.

Testing JavaScript... with Ruby?! — тестирование 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

  • 186: Let’s Duplicate Stuff — ведущий подкаста беседует с Daniel Colson — разработчиком компании thoughtbot, который занимается поддержкой инструмента factory_bot.
  • 187: Convincing People Not to Build Software — гость подкаста Matthew Sumner рассказывает о своем новом проекте.
  • 188: A Function by Any Other Name — участники дискуссии обсуждают duplication, принцип DRY и другие интересные темы.

Ruby Rogues

RWpod

Ruby on Rails Podcast

Remote Ruby

  • Joined by Chris Seaton — ведущие и гость подкаста обсуждают проект TruffleRuby.
  • Joined by Terence Lee — в этом выпуске ведущие беседуют с Terence Lee — одним из членов Ruby Core Team и активным участником сообщества Ruby.
  • Joined by Ben Orenstein — гость подкаста — Ben Orenstein — рассказывает о своем опыте разработки на Rails и о своем проекте Tuple.

Ruby Testing

RubyConf AU 2019 — подборка докладов с конференции RubyConf AU 2019.

Февральские выпуски GoRails:

Подборка платных скринкастов от Drifting Ruby в феврале:

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

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


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

Похожие статьи:
В этом выпуске огромный набор новых сервисов от Amazon, куча серьезных релизов от MySQL, Apache, HAProxy и Elasticsearch. Новости Why Red Hat Acquired Ansible....
У випуску: особливості PHP 7.2, LTS реліз, новий проект Unit від Nginx та бібліотека, яка почистить ваш код. Статті PHP 7.2 is due in November. What’s...
Всем привет! Рады представить вам Ruby/Rails дайджест за август. В последний месяц лета предлагаем вам прочесть советы...
Компания Google сделала карты своего сервиса Google Карты доступными без подключения к интернету, включая полноценное...
Щороку ІТ-галузь «поглинає» 15–20 тис. нових працівників — і хоча більшість молодих спеціалістів знаходять свою...
Яндекс.Метрика