×Закрыть

Ruby/Rails дайджест #24: релиз Ruby 2.6.0-preview3, обновление JRuby до 9.2.4.1, а также выход 5.2.2.rc1 фреймворка Ruby on Rails

Всем привет!

В новом дайджесте тонна хороших новостей для сообщества Ruby. Начнем с того, что работа над Ruby 2.6 на завершающей стадии — в начале ноября была представлена третья preview-версия Ruby 2.6, за которой последует уже предрелизная версия. Также вышел ряд других обновлений, в том числе Rails 5.2.2.rc1, Passenger 5.3.7 и Jekyll 3.8.5. Обратите внимание на подборку статей о Ruby 2.6 — там не только говорится о новых функциях, но также есть бенчмарки работы с JIT-компилятором и без него.

Почитать

Scaling the Monolith — чек-лист по масштабированию монолитного приложения.

Tips for Writing Fast Rails: Part 2 — советы автора, как увеличить производительность приложений на Rails (первая часть здесь).

Bundler is Built Into Ruby 2.6.0preview3 — теперь менеджер пакетов Bundler встроен в Ruby 2.6.0-preview3.

Deploying feature branches to have a review app — как и зачем создавать staging-окружение для каждой ветки feature при разработке ПО.

Rails Path Helpers and the Mystery of the Missing Route Key — автор на примере показывает, как решить проблему, которая возникает при отсутствии route key в приложениях на Rails.

Why we use Ruby on Rails to build GitLab — CEO компании GitLab рассказывает, почему для их проекта был выбран Ruby on Rails.

Do You Test Ruby Code for Thread Safety? — автор показывает, как протестировать код на Ruby на потоковую безопасность (thread safety) при помощи гема threads.

Fibers Are the Right Solution — как использовать возможности многопоточности в Руби для создания веб-сервера.

Airflow Architecture at Drivy — как и зачем компания Drivy использует Airflow-архитектуру.

An Update on Bundler 2.0 — узнайте, что нового в Bundler 2.0.

Git aliases I can’t live without — автор рассказывает, какие псевдонимы (aliases) он использует при работе с Git и почему.

Finding Ruby Performance Hotspots via Allocation Stats — как увеличить производительность приложений на Ruby при помощи frozen strings.

No more hassle with Rails secret management — освежаем в памяти, как работать с Rails Credentials в Ruby on Rails 5.2.

Ruby’s (not so) constants — автор рассказывает про особенности использования констант в Ruby.

Ruby `allocate` method — как работает метод allocate в Ruby.

Hash rockets are good actually — автор говорит о преимуществах записи хэшей через hash rocket.

The Benefits of Materialized Views (and how to use them in your Ruby on Rails project) — когда использовать materialized views в приложениях на Rails.

Ruby Deserialization — что нужно учитывать при проведении десериализации в Ruby.

Image Placeholder for your development environment — инструкция, как использовать гем ImagePlaceholder в development-окружении при разработке приложений на Ruby.

Подборка статей о Ruby 2.6:

Подборка от AppSignal

Testing Asynchronous Threads in Ruby — учимся тестировать асинхронные потоки в Ruby.

Fibers and Enumerators in Ruby: Turning Blocks Inside Out — детальный разбор классов Enumerable и Fiber в Ruby.

Подборка от Jason Swett

Avoiding Network Calls In Rails Tests Without Using Mocks, Stubs or VCR — простой пример, как избежать сетевых запросов в тестах с помощью dependency injection.

Common Legacy Project Challenges and How to Address Them — какие трудности могут возникнуть при работе на legacy-проектах и как их решить.

When I Use Controller/Request Specs in Rails and When I Don’t — автор рассказывает, когда следует использовать controller specs, а когда request specs.

Rails Scaffolding and TDD Are Incompatible — почему scaffolding (генерация шаблонного кода в Rails) несовместим с test-driven development.

Подборка от Phusion

Stopping slow client DoS attacks with Puma on Passenger 6 — как предотвратить slow client DOS-атаку, используя Puma, Nginx и Passenger.

Your language’ built-in server was never meant for production use — какой веб-сервер выбрать в приложениях на Ruby.

Подборка от reinteractive

When is the right time to do a code audit? — автор делится мнением, когда следует проводить code audit.

Using Ruby and Tesseract to Recognise Text in an Image — учимся распознавать текст в изображениях в приложениях на Ruby при помощи гема Tesseract.

Подборка от RubyGuides

Ruby Templating Engines: ERB, HAML & Slim — обзор основных механизмов обработки шаблонов в Ruby.

How to Use attr_accessor, attr_writer & attr_reader — автор на примерах показывает, как использовать методы attr_accessor, attr_writer и attr_reader.

Ruby Coding Challenges & How to Solve Them — сложности написания кода на Ruby и как их преодолевать.

How to Use The Ruby Alias Keyword — освежаем в памяти, как использовать ключевое слово alias и метод alias_method в Ruby.

How To Use Heredoc in Ruby — освежаем в памяти, как использовать heredoc в Ruby.

Dup vs Clone in Ruby: Understanding The Differences — разбираемся, в чем разница между методами dup и clone в Ruby.

Подборка от Victor Moroz

Две части туториала о создании Ruby гема с расширением, написанным на Rust:

Туториалы

Migrating from Paperclip to Active Storage — в этом туториале автор показывает, как провести миграцию с Paperclip на Active Storage.

Clean RSpec configuration directory structure for Ruby on Rails gems needed in testing — инструкция, как выбрать структуру конфигурационного каталога (configuration directory) RSpec.

Using random number generators to solve problems — автор на примере показывает, как использовать генератор случайных чисел в Ruby.

A Beginner’s Guide to Service Objects for Ruby on Rails — гайд о служебных объектах (service objects) в Ruby on Rails для новичков.

Ruby memory, ActiveRecord and Draper — автор делится опытом оптимизации памяти в приложении на Rails при обработке CSV-файлов.

Writing GraphQL queries in native Ruby = Love — автор показывает, как использовать GraphQL в приложениях на Rails.

Building SQL expressions with Sequel — как создавать SQL-выражения при помощи инструмента Sequel.

Серия туториалов, как создать приложение на Ruby on Rails, в котором за логику представления будет отвечать React:

Релизы

Ruby 2.6.0-preview3 — вышла третья предрелизная версия Ruby 2.6.0 с JIT-компилятором.

Rails 5.2.2.rc1 — команда разработчиков Ruby on Rails представила предрелизную версию Rails 5.2.2.

JRuby 9.2.4.1 — релиз версии 9.2.4.1 интерпретатора языка Ruby.

Jekyll 3.8.5 — представлена новая версия генератора статичных сайтов Jekyll.

Passenger 5.3.7 — вышла версия 5.3.7 популярного сервера приложений Passenger.

RubyMine 2018.3 (build 183.4284.145) — компания JetBrains обновила IDE RubyMine

Ruby Gems

GraphQL::SmartSelect — плагин для библиотеки graphql-ruby

Google Recaptcha v3 — имплементация Google Recaptcha v3 для Rails.

WebpackerCli — эта библиотека позволяет использовать Webpacker в других веб-фреймворках.

FiniteMachine — finite state machine с простым и понятным синтаксисом.

Standard — Ruby Style Guide с инструментами контроля качества и отладки кода.

Iguvium — эта библиотека извлекает таблицы из PDF-документов.

Typerb — гем для проверки соответствия кода для Ruby 2.6.

ImagePlaceholder — библиотека для генерации плейсхолдеров в development-окружении.

События

Ruby Meditation #25 — 8 декабря в Киеве пройдет Ruby Meditation #25. Спикеры расскажут о многопоточном выполнении на production, важности business development и многих других интересных темах.

Послушать

The Bike Shed

  • 177: Tricking Computers Into Doing Things — ведущий и гость подкаста обсуждают множество тем, в том числе производительность приложений на Rails.
  • 178: Friday is For Spikes — основная тема дискуссии — платформа GitHub.

Ruby Rogues

RWpod

Ruby on Rails Podcast

The Ruby Testing Podcast

Remote Ruby

Посмотреть

4 Ways to Scale on Heroku — четыре способа масштабировать приложение на Heroku.

Выпуски GoRails в ноябре, в которых автор показывает, как получить доступ к параметрам в адресной строке из view, не прибегая к params.permit, добавить аватары пользователей в Rails-приложения при помощи ActiveStorage и как реализовать встраиваемые JavaScript-виджеты в приложениях на Rails:

Ноябрьская подборка платных скринкастов от Drifting Ruby:

Выпуски платных скринкастов от Ruby Tapas за ноябрь:


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

LinkedIn

12 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Спасибо! Отличная ещемесячная подборка.

А хтось вже тестив 2.6 з JIT, як воно? Дає якийсь буст по перформенсу?

Автору дякую за підбірку, як завжди, круто!

Сугубо мое мнение — нет смысла. Оно не stable, соот. в продуктиве делать нечего. А мерять сферических попугаев нет никакого желания.

Может быть Вам будет интересен данный материал:
engineering.appfolio.com/...​260preview3-for-discourse

Большое спасибо за подборку свежайших руби вкусностей!

Большое спасибо за замечательную подборку

Спасибо, будем дальше фигачить и подбирать интересный материал

Спасибо, всегда очень жду ваших дайджестов!

И Вам спасибо за фидбэк, нашей команде важно знать что дайджест действительно полезен

Очень полезен. спасибо за Ваш труд. Я даже зарегистрировался тут, только для того что бы поблагодарить Вас.

Подписаться на комментарии