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

Похожие статьи:
Приглашаем детей и подростков стать участниками Летнего предпринимательского интенсива, целью которой является в интерактивной...
Компанія з українським корінням Creatio залучила $200 млн капіталу при оцінці $1,2 млрд. Про це вона повідомила на своєму сайті. Creatio —...
Кабмін дозволив продовжити на два місяці чинні відстрочки від призову на військову службу для військовозобов’язаних під час...
Наприкінці року DOU зібрав коментарі від експертів, асоціацій і кластерів про те, що зараз відбувається з ІТ-індустрією...
Компанія Uklon спільно з Projector Foundation запустили безоплатні курси для ветеранів, ветеранок, а також захисників і захисниць....
Яндекс.Метрика