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 для создания
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:
- Building a data API with Ruby on Rails 5: Part 1 — Setup and Routing
- Data Aggregation API in Rails 5: Part 2 — Testing Philosophies and Approach
Релизы
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
- 39 выпуск 06 сезона. Upgrading GitHub from Rails 3.2 to 5.2, Trix 1.0.0, SystemJS 2.0.0, Browserino, TurtleDB, Tabulator и прочее
- 40 выпуск 06 сезона. Ruby 2.6 adds RubyVM::AST module, Action Text for Rails 6, Hacktoberfest 2018, Falcon, Cogear.JS и прочее
- 41 выпуск 06 сезона. The Evolution of Ruby Strings, JavaScript Visualizer, FaaStRuby, Favicon Checker, ProbaClick и прочее
- 42 выпуск 06 сезона. Upcase is Now Free, ActiveSupport::StringInquirer magic, Spok, Evergreen, Omi, Colorblindly и прочее
- 43 выпуск 06 сезона. Hanami v1.3.0, Node v11.0.0, Storybook 4.0, React v16.6.0, Enkrip, IronDB, Lazy-brush и прочее
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:
- Deleting Comments In Nested Threads
- Reddit style comment thread pagination
- Handling First & Last Name with the name_of_person gem
- How to Build a Slack Slash Command App with Rails
- Search Filters with ElasticSearch Aggregations
Подборка платных скринкастов от Drifting Ruby в октябре:
- #154 Service Objects for API Interactions with Twilio
- #155 Friend Requests From Scratch
- #156 Friend Requests Views, Controllers, and Model Methods
- #157 Nested Comments from Scratch
Выпуски платных скринкастов от Ruby Tapas за октябрь:
- JSON API in Rails — Part 1
- JSON API in Rails — Part 2
- Smaller Objects, Faster Code
- Github Flow Automation
- From Math to Code
Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
. Спасибо за помощь в подготовке дайджеста команде RubyGarage.
← Предыдущий выпуск: Ruby дайджест #22