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

Похожие статьи:
Привет, меня зовут Артур Селецкий. Я Co-Founder/Partner в It Network. Мы с коллегами занимаемся развитием комьюнити бизнес-аналитиков...
Компании HTC и Under Armour в рамках международной выставки потребительской электроники CES в США анонсировали UA HealthBox – первую...
Смартфон Huawei Honor 7 был официально представлен на российском рынке и вскоре поступит в продажу в России. Как указано в...
Компания Vertu вновь сменила владельца. Теперь производитель люксовых телефонов из Британии принадлежит Godin Holdings со...
14 декабря стартует Интенсивный курс по основам программирования на языке Java. Курс рассчитан на людей, которые...
Яндекс.Метрика