Ruby Digest #95: Ruby 4.0.1, оновлення Ruby 3.2 і стабілізація інструментів
Привіт, Ruby-спільното!
У цьому випуску — січневі апдейти бібліотек, новини зі світу Rails і добірка матеріалів про продуктивність, інфраструктуру та сучасні підходи до Ruby-проєктів.
Новини
🔹 Ruby 3.2.10 Released — стабілізаційний реліз із виправленнями багів і безпекових проблем напередодні завершення підтримки гілки 3.2.
🔹 Ruby 4.0.1 Released — перше патч-оновлення Ruby 4.0 з виправленнями помилок і стабілізаційними правками без змін у публічному API.
🔹 4.0.5 Released — мінорне оновлення з багфіксами та покращеннями стабільності для роботи з гемами та залежностями.
Корисне
🔹 hotwired / turbo-rails — інструмент для пришвидшення роботи сторінок у Rails без повного перезавантаження, з покращеною стабільністю оновлення сторінок і форм.
🔹 inertiajs / inertia-rails — підхід до створення інтерфейсів у Rails без окремого API, із поліпшеною сумісністю з новими версіями Rails.
🔹 ElMassimo / vite_ruby — рішення для швидкої збірки JavaScript і стилів у Ruby-застосунках, з доопрацьованою інтеграцією з Rails.
🔹 yippee-fun / phlex — інструмент для створення HTML через Ruby-код без шаблонів, зі стабільнішою роботою компонентів.
🔹 yippee-fun / phlex-rails — інтеграція Phlex з Rails, із покращеною сумісністю та стабільністю рендерингу.
🔹 Rails-Designer / rails_icons — набір готових іконок для Rails-проєктів із розширеним набором і спрощеним підключенням.
🔹 ruby / rbs — засіб для опису типів у Ruby-коді з покращеною підтримкою нових версій Ruby.
🔹 bullet-train-co / bullet_train — готова основа для створення бізнес-застосунків на Rails із доопрацьованими стандартними модулями.
🔹 grosser / maxitest — інструмент для прискорення запуску тестів у Ruby зі стабільнішою роботою тестових наборів.
🔹 rouge-ruby / rouge — засіб для підсвічування коду в документації та блогах із підтримкою додаткових мов.
🔹 rubysec / bundler-audit — інструмент для перевірки залежностей на відомі проблеми безпеки з оновленими правилами перевірок.
🔹 martijn / xsv — інструмент для швидкої роботи з CSV-файлами (перегляд, фільтрація, перевірка), оптимізований для великих обсягів даних.
🔹 heartcombo / devise — система автентифікації для Rails із покращеною сумісністю з новими версіями фреймворку.
🔹 whitesmith / rubycritic — засіб для оцінки якості Ruby-коду з оновленими перевірками та точнішими звітами.
🔹 ruby-grape / grape — інструмент для створення API в Ruby та Rails із покращеною стабільністю та сумісністю.
🔹 leandromoreira / redlock-rb — інструмент для розподіленого блокування через Redis із доопрацьованою обробкою крайніх випадків.
🔹 puma / puma — вебсервер для Ruby та Rails-застосунків із покращеною роботою під навантаженням.
🔹 nateware / redis-objects — інструмент для зберігання простих структур даних у Redis зі стабільнішою поведінкою.
🔹 crmne / ruby_llm — засіб для роботи з великими мовними моделями в Ruby з доопрацьованою зручністю використання.
🔹 ixti / sidekiq-throttled — інструмент для обмеження кількості фонових завдань у Sidekiq зі стабільнішою роботою лімітів.
🔹 ruby-shoryuken / shoryuken — інструмент для обробки черг завдань з Amazon SQS у Ruby.
🔹 modelcontextprotocol / ruby-sdk — бібліотека для взаємодії з моделями штучного інтелекту через єдиний протокол.
Цікаве
🔹 charm_ruby — проєкт із набором інструментів для створення сучасних TUI-інтерфейсів у Ruby — акцент на зручність, стиль і роботу в терміналі без зайвої складності.
🔹 It is 2026; where were we? — апдейт із нотатками про поточні Ruby-проєкти, експерименти та спостереження автора щодо стану екосистеми на початку 2026 року.
🔹 Ruby Community Conference CRACOW — конференція для спільноти Ruby-розробників із доповідями про практичний досвід, нові підходи та розвиток екосистеми Ruby.
Статті й туторіали
🔹 An Introduction to Ruby Parsing with Prism — вступна стаття про Prism — новий парсер Ruby, який лежить в основі майбутніх інструментів аналізу коду, з поясненням базових понять та прикладів роботи з AST.
🔹A data model for Git (and other docs updates) — пояснення Git як чіткої моделі даних: об’єкти, зв’язки між ними та чому саме така структура робить Git надійним і гнучким.
🔹 Moving Mountains of Data off S3 — практичний досвід Basecamp з перенесення великих обсягів даних із S3, причини такого рішення та технічні виклики під час міграції.
🔹 Build a Feature Flag System in 50 Lines with Rails.app.creds — показано простий підхід до реалізації feature flags у Rails через credentials, без окремих сервісів і зайвої інфраструктури.
🔹 Ruby Can Draw Cities Now — приклад генеративного підходу, де Ruby використовується для створення й візуалізації міських структур, поєднуючи алгоритми, геометрію та креативне програмування.
🔹 Prevent the Robocalypse with Claude Code and TDD — роздуми про те, як тест-орієнтована розробка допомагає уникати критичних помилок, тримати код під контролем і зменшувати ризики некерованої складності.
🔹 Find the Last Matching Element with rfind — коротка практична замітка про використання rfind у Ruby для пошуку останнього елемента колекції, що відповідає умові, з наочними прикладами.
🔹 libgd-gis continues to grow — now with styles and more — огляд розвитку libgd-gis: нові можливості для роботи з GIS-даними в Ruby, зокрема підтримка стилів і розширення для візуалізації.
🔹 Rails 8.1 introduced except_on option for validations and callbacks — в Rails з’явилась опція except_on, яка дозволяє простіше виключати валідації та колбеки для конкретних контекстів, роблячи код читабельнішим і гнучкішим.
🔹 Ruby 4.0 and Ruby Box: What Changed and How to Upgrade Safely — пояснення ключових змін у Ruby 4.0 та Ruby Box, з практичними порадами, як безпечно підготувати проєкт і пройти оновлення без сюрпризів.
🔹 Claude on Incus — All the autonomy, securely — досвід запуску LLM (Claude) у ізольованому середовищі Incus: як отримати автономність, контроль над даними та безпеку без зовнішніх хмарних залежностей.
🔹 Monitoring LLM usage in Rails with RubyLLM::Monitoring — практичний підхід до моніторингу використання LLM у Rails-застосунках: трекінг запитів, витрат і поведінки моделей за допомогою rubyllm-monitoring.
🔹 Build a File Deduplication System with ActiveStorage — пояснення, як реалізувати дедуплікацію файлів в ActiveStorage, щоб зменшити витрати на зберігання та уникнути повторного завантаження однакових файлів.
🔹 Nested forms without `accepts_nested_attributes_for` in Rails — показано альтернативний підхід до вкладених форм у Rails без accepts_nested_attributes_for: простіші контролери, явне керування логікою та менше «магії».
🔹 Rails Generate Model: Beginner’s Guide to Database Models — покроковий гайд для початківців про rails generate model: як правильно описувати поля, типи даних і зв’язки між моделями.
🔹 Stop using DateTime in 2026 (unless you work for UNESCO) — аргументована стаття про проблеми datetime у Rails і Ruby, з поясненням, коли варто використовувати date, time або timestamp і як уникати помилок із часовими зонами.
🔹 A Neat Trick for Splitting Strings — невелика, але корисна порада з Ruby про нестандартний спосіб розбиття рядків, який робить код коротшим і читабельнішим.
🔹 GoodJob, Solid Queue, Sidekiq, Active Job, in 2026 — огляд актуального стану черг у Rails у 2026 році: порівняння GoodJob, Solid Queue та Sidekiq, їхні сильні сторони й сценарії використання з Active Job.
🔹 Understanding How Active Storage Variants Transform Images — практичний гайд з роботи з ActiveStorage variants: як змінювати розміри, формат і якість зображень у Rails без зайвого коду.
🔹 How I Read A Pull Request — особистий, але дуже практичний підхід до читання PR: на що звертати увагу в першу чергу, як швидко зрозуміти наміри автора і не потонути в деталях.
🔹 On the way to step functions: it is actually a DAG — продовження розбору побудови складних робочих процесів: як еволюціонувати власні пайплайни в бік step-based підходу з кращою керованістю та відмовостійкістю.
🔹 Beware grpc gem and Ruby 4.0 — попередження про проблеми сумісності grpc gem із Ruby 4.0: що саме ламається, чому це важливо і на що звернути увагу під час оновлення.
🔹 Now Ruby GIS Rendering: Stabilizing the libgd-gis Rendering API — оновлення libgd-gis, зосереджене на стабілізації API рендерингу для GIS-візуалізацій у Ruby та підготовці бібліотеки до ширшого використання.
🔹 Building Smart Retry Strategies in Rails with Error-Aware Delays — практичні поради з реалізації «розумних» ретраїв у Rails: коли повторювати запити, як уникати нескінченних циклів і зменшувати навантаження на систему.
🔹 Crafting Code: Building a Ruby Pattern Generator for a Crochet Circle — незвичний і надихаючий приклад використання Ruby для генерації в’язальних схем: як алгоритми та математика допомагають автоматизувати креативні процеси.
🔹 Getting Started with Vite on Rails — практичний вступ до використання Vite в Rails-проєктах: налаштування, інтеграція з Rails та коли Vite є кращою альтернативою класичним підходам.
🔹 Creating a link-icon custom element — практична стаття про використання Web Components (custom elements) для лінків з іконками: чистіший HTML, менше дублювання та краща підтримуваність.
🔹 Making Maps with Ruby — огляд підходів до створення мап у Ruby: робота з геоданими, рендеринг і приклади візуалізацій для картографічних задач.
🔹 On the way to step functions: the two worlds — третя частина серії про перехід до step-based архітектури: глибший розбір виконання кроків, помилок і відновлення процесів.
🔹 RubyLLM::Instrumentation: The foundation for RubyLLM monitoring — пояснення, як побудувати базову інструментацію для роботи з LLM у Ruby, що стало основою для rubyllm-monitoring.
🔹 Humans in the Loop — стаття про важливість «людини в циклі» під час автоматизації та роботи з AI: чому повна автономність небезпечна і як правильно залишати точки людського контролю.
🔹 A JavaScript developer’s guide to Rails: Where Does Everything Come From? — пояснення внутрішньої кухні Rails для JS-розробників: звідки беруться контролери, хелпери, роутинґ і вся «магія» фреймворку.
🔹 Building optimistic UI in Rails powered by Turbo — практичний гайд із побудови оптимістичного UI за допомогою Turbo: миттєвий фідбек для користувача без складного фронтенд-стану.
🔹 What Shoulda Matchers Is Actually Doing For You — пояснення, як саме працюють Shoulda Matchers під капотом і чому вони спрощують та пришвидшують написання тестів у Rails.
🔹 Monitor CSRF Attacks in Production with Rails Notifications — огляд механізму CSRF-сповіщень у Rails: як дізнаватися про атаки, логувати події та реагувати на підозрілу активність.
🔹 A JavaScript developer’s guide to Rails: What does Composition Over Inheritance mean? — пояснення принципу «composition over inheritance» в контексті Rails, орієнтоване на JS-розробників і реальні приклади з коду.
Подкасти
Drifting Ruby
- Self Hosted App — розмова про самохостинг: як запускати, підтримувати й масштабувати власні Rails-застосунки без SaaS-залежностей.
- RequestJS — інтеграція frontend-інструментів, Hotwire, Stimulus і сучасний JS без SPA-перевантаження
- Credentials Override — безпека в Rails-проєктах: secrets, credentials, помилки конфігурації та як не зламати продакшн.
- Turbo Permanent — як працює permanent state, навігація без перезавантажень і типові пастки.
Remote Ruby
- Remote Ruby Wrapped — підсумки року в Ruby-екосистемі: тренди, інструменти та теми, які найбільше хвилювали спільноту.
- Tech Resolutions and Tailwind Troubles — технічні плани на рік, Tailwind у Rails-проєктах та компроміси між швидкістю і чистотою коду.
- Tool Standardization — стандартизація інструментів у командах: linters, форматування, CI і як зменшити хаос у проєкті.
- Blue Ridge Ruby 2026 with Jeremy Smith and Joe Peck — анонс і закулісся конференції Blue Ridge Ruby: що чекати у 2026 році.
Подобається дайджест? Підписуйтесь на автора, щоб отримувати сповіщення про нові публікації на пошту.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів