Ruby/Rails дайджест #23: релиз Ruby 2.5.3, обновление Hanami до версии 1.3.0, фреймворк Action Text для Ruby on Rails 6

Всем привет!

В октябре Ruby-комьюнити успело порадовать нас хорошими новостями. Прежде всего, были представлены обновленные версии языка Ruby и популярного фреймворка Hanami. Cообщество Ruby ведет активную работу над фреймворком Action Text, который войдет в состав Ruby on Rails 6 (не пропустите подборку новостей о Rails 6 от bogdanvlviv). Также обратите внимание, что в CircleCI добавлена поддержка GitHub Checks.

Почитать

Introducing Action Text for Rails 6 — что такое фреймворк Action Text, который будет включен в Ruby on Rails 6.

What is new in Rails 6.0 — подборка последних новостей о Ruby on Rails 6.

Upgrading GitHub from Rails 3.2 to 5.2 — Eileen Uchitelle из команды GitHub рассказывает об обновлении проекта до версии Ruby on Rails 5.2.1.

Cache Invalidation Complexity: Rails 5.2 and Dalli Cache Store — как избежать проблем в работе кэш-ключей при использовании Rails 5.2.

Working with ActiveRecord Callbacks — автор делится советами по использованию колбэков ActiveRecord в Rails-приложениях.

Code Audit: How to Provide the Best Quality for Your Ruby on Rails Application — как провести code audit приложения на Ruby on Rails.

Microservices vs spaghetti code are not your only options — автор рассматривает возможный вариант стандартизации архитектуры Passenger по примеру Kubernetes.

Meet Yabeda: Modular framework for instrumenting Ruby applications — знакомимся с Yabeda — фреймворком для сбора метрик в приложениях на Ruby.

How Devise keeps your Rails app passwords safe — разбираемся в деталях: как работает популярный гем Devise.

CircleCI launches support for GitHub Checks — инструмент CircleCI теперь поддерживает GitHub Checks.

Where Ruby/Sinatra falls short — что следует учитывать при разработке приложений на Sinatra.

Ruby Method Lookup, RubyVM.stat and Global State — автор подробно описывает, как и зачем избегать определения глобальных методов и констант.

Some notes on what’s going on in ActiveStorage — статья поможет разобраться с тем, как работает Active Storage в Ruby on Rails.

Pair With Me: Rubocop Cop that Detects Duplicate Array Allocations — учимся использовать популярный линтер RuboCop для ускорения производительности Rails-приложений.

12 Factor CLI Apps — знакомимся с методологией 12 factor app, разработанной компанией Heroku для создания CLI-приложений.

Destructuring Methods in Ruby — как выполнить деструктуризацию методов в Ruby.

Rails Parts — автор делится опытом реструктуризации приложения на Rails.

Ruby gotchas for the JavaScript developer — на что стоит обратить внимание JavaScript-разработчику при изучении Ruby.

Ruby Plotting with Galaaz: An example of tightly coupling Ruby and R in GraalVM — учимся строить графики на языке R в Ruby-приложениях при помощи библиотеки Galaaz.

Подборка от AppSignal

The Magic of Class-level Instance Variables — какие возможности дает использование class-level instance variables в разработке на Ruby.

The innards of a RubyGem — автор показывает, как создать гем без использования Bundler.

Building a Ruby C Extension From Scratch — краткая инструкция, как писать Ruby-расширения на языке C.

Подборка от BigBinary

Ruby 2.6 adds RubyVM::AST module — разбираемся с модулем RubyVM::AST в Ruby 2.6.

Ruby 2.6 Range#cover? now accepts Range object as an argument — метод Range#cover? в Ruby 2.6 принимает объекты класса Range в качестве аргументов.

Rails 5.2 adds DSL for configuring Content Security Policy header — в Rails 5.2 добавлен DSL для конфигурации Content Security Policy.

Rails 5.2 disallows raw SQL in dangerous Active Record methods preventing SQL injections — версия 5.2 фреймворка Ruby on Rails не разрешает использование чистого SQL для предотвращения SQL injections.

Skip devise trackable module for API calls to avoid users table getting locked — автор делится опытом решения проблемы, связанной с работой модуля trackable, при использовании популярного гема Devise.

Подборка от Bozhidar Batsov

A Better Way to Compare Versions in Ruby — как сравнивать версии при разработке на Ruby.

A Safer RuboCop — автор рассказывает о безопасном автоисправлении в RuboCop.

Подборка от Igor Springer

5 security issues in Ruby on Rails apps from real life — автор на основе собственного опыта перечисляет пять уязвимостей в Ruby on Rails приложениях.

How to log HTTParty requests — как регистрировать все запросы, посылаемые гемом httparty.

`ActiveSupport::StringInquirer` magic — как и зачем использовать класс ActiveSupport::StringInquirer.

`ActiveSupport::ArrayInquirer` and even more Rails magic — разбираемся с классом ActiveSupport::ArrayInquirer.

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

What Exactly Makes «Bad» Code Bad? — автор делится своим мнением о том, что такое плохой код и почему.

How to See Your Feature Specs Run in the Browser — как запускать feature tests в браузере.

Factories and Fixtures in Rails — обзор трех способов генерации тестовых данных в приложениях на Rails.

Подборка от Josef Strzibny

Debugging silently failing compilation aka Webpacker can’t find application.js in public/packs/manifest.json — автор делится опытом отладки ошибок компиляции при использовании Webpacker.

Building auto login for fast Rails development with Sorcery — простой способ ускорить процесс разработки ПО при помощи автоматической аутентификации.

Подборка от Mehdi Farsi

5 Ruby Tips You Probably Don’t Know — автор описывает пять возможностей языка Ruby, о которых многие разработчики не знают.

The Evolution of Ruby Strings from 1.8 to 2.5 — освежите в памяти, какие изменения произошли с классом String от версии Ruby 1.8 до 2.5.

Why the Ruby community encourages Duck Typing — автор делится мнением, почему сообщество Ruby поощряет duck typing.

The short guide to learning how Classes work in Ruby — этот краткий гайд поможет новичкам изучить, как работают классы в языке Ruby.

Подборка от reinteractive

How to structure JavaScript code when using AJAX in Rails — два способа структурировать JavaScript-код при использовании AJAX в приложениях на Rails.

To Microservice or Monolith, that is the question — автор делится мыслями о выборе архитектуры приложения.

Подборка от RubyGuides

How to Check If a Variable is Defined in Ruby — как проверить, инициализирована ли переменная в Ruby.

Understanding The Differences Between Puts, Print & P — освежаем в памяти, в чем разница между тремя способами вывода данных в Ruby.

How to Use RSpec Mocks (Step-By-Step Tutorial) — пошаговый туториал об использовании mocks в тест-фреймворке RSpec.

How to Use the Ruby Grep Method (With Examples) — автор показывает, как использовать метод grep в Ruby с подробными примерами.

How to Read & Parse CSV Files With Ruby — как считывать и записывать csv-файлы, а также какие существуют конвертеры и гемы для работы с ними.

How to Use Ruby Any, All, None & One — детальный разбор четырех методов Enumerable.

What is Ruby on Rails? — обзорная статья о Ruby on Rails: философия фреймворка, причины стать Rails-разработчиком и как начать изучение Rails.

How to Use The Ruby Map Method (With Examples) — как использовать метод map в Ruby.

Understanding Method Visibility In Ruby — в чем разница между public, private и protected методами в Ruby.

How To Delegate Methods in Ruby — автор показывает несколько способов делегирования методов в Ruby.

Подборка от thoughtbot

Tab completion in GNU Readline: Ruby edition — как реализовать автозаполнение в командной строке при помощи GNU Readline в Ruby.

Writing Less Error-Prone Code — автор делится советами, как писать более качественный код.

Туториалы

How to Build Chat into Ruby on Rails Applications — как реализовать live chat в приложении на Ruby on Rails.

Simplifying internal validations using Dry-Validation — учимся отделять валидацию данных от бизнес-логики при помощи гема dry-validation.

How we halved our memory consumption in Rails with jemalloc — автор показывает, как сократить использование памяти в Rails-приложении при помощи менеджера памяти jemalloc.

Scale Out Multi-Tenant Apps based on Ruby on Rails — инструкция по горизонтальному масштабированию многопользовательских приложений на Ruby on Rails.

Using Ruby on Rails 5.2 Active Storage — как настроить Active Storage при работе с версией 5.2 фреймворка Ruby on Rails.

How to Use Repository Pattern with Active Record — автор показывает, как использовать repository pattern при работе с Active Record в приложениях на Rails.

How to: Execute RSpec in parallel locally — как обеспечить параллельное выполнение тестов RSpec в локальном окружении.

Launching Your Own Ruby Gem — Part 1: Build It — первая часть подробной инструкции, как создать гем.

Testing Ruby’s CGI — как тестировать CGI в Ruby.

Ruby async await — автор рассказывает, как реализовать функцию async await в Ruby.

Custom URLs in Ruby on Rails: How you can use descriptive slugs instead of IDs — как реализовать настраиваемые URL в приложении на Rails.

Ruby and Rack: The beginning — разбираемся, как Rack взаимодействует с веб-серверами Webrick, Mongrel, Thin и Puma.

Handling exceptions in Rails API applications — автор делится опытом обработки исключений в Rails API приложениях.

How to use HMAC-SHA256 to connect to a REST API like Ticketmatic — краткая инструкция, как соединиться с REST API, если используется алгоритм HMAC-SHA256.

Цикл статей о создании data API при помощи Ruby on Rails 5:

Релизы

Ruby 2.5.3 — вышла версия 2.5.3 языка Ruby.

Hanami 1.3.0 — представлена версия 1.3.0 популярного фреймворка Hanami.

Ruby Gems

minitest-mock_expectations — гем для подтверждения вызова метода при работе с фреймворком Minitest.

Salus — инструмент для координации работы сканеров уязвимостей.

Enkrip — гем шифрует и дешифрует атрибуты моделей Active Record.

OurPC — экспериментальная реализация gRPC клиента и сервера.

События

Ruby Meditation #24 — 3 ноября в Киеве пройдет Ruby Meditation #24. Темы включают domain-driven design в Rails, runtime model в Ruby, оптимизацию Capybara.

Конференции

RubyConf 2018 — с 13 по 15 ноября в Лос-Анджелесе (США) проходит конференция RubyConf 2018; конференцию открывает создатель языка Ruby Yukihiro ’Matz’ Matsumoto.

Послушать

The Bike Shed

172: What I Believe About Software — ведущий и гость подкаста обсуждают основные составляющие процесса разработки ПО: что такое story points, когда делать рефакторинг и code review и т. д.

175: Tell Me When It’s Real — участники дискуссии обсуждают новейшие тренды в мире веб-разработки.

Ruby Rogues

RR 382: «When to Build... When to Buy» with The Panelists — участники дискуссии обсуждают, стоит ли создавать новые инструменты или же покупать сторонние решения.

RR 383: «Rbspy: A New(ish) Ruby Profiler!» with Julia Evans — главная тема подкаста — профайлер Ruby Spy.

RR 384: «Sonic Pi» with Sam Aaron — в гостях у ведущих Sam Aaron — разработчик среды программирования для создания музыки Sonic Pi.

RR 385: «Ruby/Rails Testing» with Jason Swett — в гостях у Ruby Rogues Jason Swett — ведущий подкаста The Ruby Testing.

RR 386: Web Console Internals with Genadi Samokovarov — основная тема подкаста — использование веб-консоли для отладки приложений на Ruby.

RWpod

Ruby on Rails Podcast

246: Trust Arts, Trust Rails with Patrick FitzGerald and Danielle Greaves — участники дискуссии обсуждают свои любимые аспекты фреймворка Ruby on Rails.

247: Introducing Action Text for Rails 6 with Javan Makhmali — выпуск посвящен фреймворку Action Text, который войдет в состав Ruby on Rails 6.

248: Diving Into Ruby Weekly with Peter Cooper — ведущая подкаста беседует с Peter Cooper — редактором рассылки Ruby Weekly.

The Ruby Testing Podcast

013 — The Balance Between Testing and Feature Development with Dave Kimura — как найти баланс между написанием функционального кода и тестов.

014 — Chris Oliver, Creator of GoRails — ведущий и гость подкаста обсуждают множество тем, в том числе integration и unit tests, а также тест-фреймворк Cucumber.

016 — Fast Tests with Vladimir Dementyev — участники дискуссии обсуждают, как ускорить прохождение тестов на Ruby.

Remote Ruby

What else can Rails add by default? — участники подкаста обсуждают обновление GitHub до Rails 5.2, фреймворк Action Text, необходимость добавить полнофункциональную встроенную аутентификацию в Rails.

The Yak Shave

4: Folks are in a Stink — ведущий и гость подкаста обсуждают важность документации в процессе разработки ПО, а также делятся советами по работе с базами данных, API и т. п.

5: A Series of Anecdotes — участники дискуссии обсуждают важность обратной связи (feedback) при разработке open source software.

6: The Podcast After the Last Podcast — послушайте, что такое WebAssembly и как его можно использовать в веб-разработке.

Посмотреть

Alpha preview: Action Text for Rails 6 — создатель Ruby on Rails David Heinemeier Hansson рассказывает о фреймворке Action Text, который войдет в состав Ruby on Rails 6.

Октябрьские выпуски GoRails, в которых ведущий продолжает серии скринкастов о nested comments и ElasticSearch, показывает, как создать приложение на основе Slack slash-команд, а также как использовать гем name_of_person:

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

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


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


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

Похожие статьи:
[DOU Hobby — рубрика про нетехнічні проекти IT-фахівців: творчість, цікаві хобі та інші lifestyle-досягнення. Якщо вам є про що розповісти —...
В рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про...
[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами...
Российский оператор мобильной связи «МТС» сообщил о том, что он и еще восемь мировых операторов – British Telecom, Deutsche...
iPhone X відрізняється від попередніх моделей великим закругленим екраном з ширшим спектром кольорів і технологією...
Яндекс.Метрика