Ruby Digest #97 у Ruby: зміни, інструменти та досвід

Друзі, всім привіт 👋

Якщо здається, що в Ruby/Rails «нічого не відбувається» — це тільки здається 😏

Цього місяця: оновлення, завершення підтримки однієї з гілок Ruby і нові рішення для тестів, API та AI. Зібрали все найважливіше — щоб ви не витрачали час на зайве.

Новини

🔹 Ruby 3.2.11 Released — фінальний випуск гілки Ruby 3.2 з оновленням zlib, яке закриває CVE-2026-27820; далі для цієї гілки оновлень уже не буде.

🔹 Rails Versions 8.0.5 and 8.1.3 have been released! — це планові виправні випуски Rails 8.0.5 і 8.1.3, які також містять зміни з попереднього безпекового оновлення.

🔹 RubyGems 4.0.9 Released — випуск RubyGems 4.0.9 і Bundler 4.0.9 з поліпшеннями, виправленнями помилок і кількома змінами в роботі bundle install.

🔹 JRuby 10.0.4.0 Released — новий випуск JRuby з орієнтацією на сумісність із Ruby 3.4, перенесенням syslog до bundled gems і десятками виправлень.

Корисне

🔹 julianrubisch / cubism — інструмент для показу в реальному часі, хто зараз переглядає або використовує певний ресурс у застосунку;

🔹 thoughtbot / top_secret — інструмент для приховування чутливих даних у тексті перед відправкою у зовнішні сервіси чи мовні моделі;

🔹 Rails Blocks changelog — сторінка зі списком оновлень Rails Blocks: нових наборів компонентів, виправлень, поліпшень поведінки Stimulus-компонентів і оновлень залежностей.

🔹 crmne / ruby_llm — інструмент для роботи з мовними моделями з Ruby; великий реліз із готовим Tailwind-чатом для Rails, генераторами агентів/інструментів і новим DSL конфігурації провайдерів.

🔹 socketry / falcon — швидкий вебсервер для Ruby з підтримкою HTTP/1 і HTTP/2; у березні вийшли технічні оновлення та виправлення.

🔹 typhoeus / typhoeus — інструмент для HTTP-запитів із підтримкою паралельного виконання; у березні вийшла версія 1.6.0.

🔹 djezzzl / factory_trace — інструмент для пошуку зайвих і невикористаних фабрик у тестах; у березні з’явився як новий проєкт.

🔹 rubymonolith / fixturebot — інструмент для генерації тестових даних із Ruby-коду у fixtures; у березні отримав увагу спільноти як новий підхід до тестових даних.

🔹 socketry / async — інструмент для асинхронної роботи з введенням-виведенням у Ruby; у березні вийшло кілька оновлень зі стабілізацією.

🔹 ElMassimo / vite_ruby — інструмент для підключення Vite у Rails; у березні вийшли нові версії з покращеннями.

🔹 ruby / rbs — засіб для опису типів у Ruby; у березні вийшла версія 4.0.0.

🔹 test-prof / test-prof — набір інструментів для пошуку повільних місць у тестах і прискорення тестового набору; у березні вийшла версія 1.6.0.

🔹 shakacode / react_on_rails — інструмент для інтеграції React у Rails із рендерингом на сервері; у березні вийшла версія 16.4.0.

🔹 MatheusRich / rails-diff — інструмент для порівняння Rails-проєкту з актуальною версією фреймворку; у березні вийшла версія 0.7.0.

🔹 suketa / ruby-duckdb — клієнт для аналітичної бази DuckDB у Ruby; у березні вийшло кілька оновлень.

🔹 simonx1 / ruby-mcp-client — клієнт для роботи з MCP-серверами та інструментами ШІ; у березні вийшла версія 1.0.1.

🔹 toptal / chewy — інструмент для роботи з Elasticsearch у Ruby; у березні вийшла версія 8.0.1.

🔹 stripe / stripe-ruby — клієнт для роботи з платіжною системою Stripe; у березні вийшла версія 19.0.0 з важливими змінами.

🔹 atipugin / telegram-bot-ruby — інструмент для створення Telegram-ботів; у березні вийшла версія 2.6.0.

Цікаве

🔸 AI Slop: A Slack API Rate Limiting Disaster — автор показує на власному прикладі, як згенерований код для Slack порушив обмеження API і чому без людської перевірки такі рішення можуть нашкодити всій системі.

🔸 Can Ruby Read an X-Ray? Building a Medical Image Processor — матеріал про прототип обробки рентгенівських знімків на Ruby з побудовою гістограм, виявленням меж і поділом зображення на області.

🔸 Which Programming Language Is Best for Claude Code? — автор порівнює 13 мов програмування й доходить висновку, що в його випробуванні Ruby, Python і JavaScript виявилися найшвидшими та найдешевшими для Claude Code.

Статті й туторіали

🔸 Faster bundler — стаття про зміни в Bundler і RubyGems, які помітно прискорюють завантаження gem-файлів, git-залежностей і bundle install.

🔸 Sidekiq in the terminal — автор пояснює, чому для частини службових задач керування через термінал може бути зручнішим за веб-інтерфейс, і показує новий інструмент для Sidekiq.

🔸 Ruby Concurrency Beyond Fibers: Threads, Ractors, and True Parallelism — огляд потоків, Ractor та інших засобів паралельного виконання в Ruby з поясненням, коли який підхід доречний.

🔸 How I Audit a Legacy Rails Codebase in the First Week — стаття про те, як швидко оцінити старий Rails-проєкт: спершу через розмови з командою, перевірку ризиків, безпеки, тестів і стану розгортання, а не лише через читання коду

🔸 Using Claude Code with Ruby on Rails: Field Notes — короткі нотатки про практичне використання Claude Code в довготривалих Rails-проєктах для розбору помилок, тестів і складного коду.

🔸 Why Reliable Monthly Maintenance Became Non-Negotiable for a Solo SaaS Founder — історія про те, як регулярна технічна підтримка, оновлення та виправлення вразливостей допомогли власнику SaaS-продукту зменшити навантаження й підтримувати стабільність системи.

🔸 Automating Quarterly Reports with an AI-Powered Workflow — стаття про те, як в OmbuLabs розклали підготовку квартальних звітів з технічної підтримки на окремі етапи збору даних, узагальнення й перевірки за участю мовної моделі.

🔸 How well are the tests covering the code? — матеріал пояснює, чому відсоток покриття сам по собі не дає повної картини і порівнює покриття рядків, гілок, шляхів та умов.

🔸 RubyLLM 1.14: From Zero to AI Chat App in Under Two Minutes — стаття про RubyLLM 1.14, що додає генератор готового інтерфейсу для чату в Rails-застосунку.

🔸 Ruby Didn’t Die in the Age of AI — автор доводить, що Ruby і Rails лишаються сильним вибором для розробки із засобами штучного інтелекту завдяки зрозумілому синтаксису й чітким домовленостям фреймворку.

🔸 Rails testing on autopilot: Building an agent that writes what developers won’t — розбір агента, який сам знаходить непокриті частини Rails-проєкту, створює або доповнює тести RSpec і перевіряє їх у процесі безперервної інтеграції.

🔸 How ZJIT removes redundant object loads and stores — стаття пояснює нову оптимізацію в ZJIT, яка прибирає зайві читання й записування полів об’єктів та завдяки цьому помітно прискорює окремі сценарії виконання Ruby-коду.

🔸 Meet Duck Typer: your new duck typing friend — тут про невеликий gem, який допомагає перевіряти, чи мають різні Ruby-класи однаковий публічний інтерфейс без явного опису контрактів.

🔸 Migrate from Devise to Rails authentication generator — короткий розбір переходу з Devise на вбудований механізм автентифікації Rails 8 у невеликому застосунку.

🔸 Aggregating models into value objects with composed_of — стаття показує, як через composed_of винести складні дані моделі в окремі об’єкти значень.

🔸 Polymorphism with Strategies — матеріал про те, чому в Rails для гнучкої поведінки часто краще використовувати композицію і стратегії, а не успадкування.

🔸 Design Meets Reality in Rails Redesigns — текст про те, що оновлення Rails-застосунку потребує ранньої узгодженості між дизайном, розробкою і бізнес-очікуваннями.

🔸 Ruby on Rails — Complete Reference of Methods, Classes & Features Not in Ruby — це великий довідник по методах, класах і можливостях, які додає Rails поверх чистого Ruby.

🔸 Declare Acronyms in Rails Inflections — стаття пояснює, як через inflect.acronym зберегти правильне написання скорочень на кшталт API у назвах класів і шляхах Rails.

🔸 Smooth UI animations on server-rendered HTML — матеріал показує, як поєднати Turbo 8, View Transitions API і Stimulus, щоб додати плавні переходи в застосунок із серверним рендерингом HTML.

🔸 How to Enable Ruby LSP in Claude Code and OpenCode — коротка інструкція, як під’єднати Ruby LSP до Claude Code, щоб інструмент краще розумів структуру Ruby-проєкту й точніше працював із кодом.

🔸 Using lumitrace to eliminate redundant type conversions in Ruby — матеріал про те, як за допомогою lumitrace знаходити й прибирати зайві перетворення типів на кшталт to_s чи to_i у Ruby-коді.

🔸 The tool I wish I had 25 apps ago — автор представляє Ruby Native — інструмент, який дає змогу перетворити Rails-застосунок на iOS-застосунок без ручної роботи в Xcode.

🔸 10 Ways Ruby’s CSV.read Can Silently Corrupt or Lose Your Data — у розборі показано десять випадків, у яких CSV.read і CSV.table можуть непомітно спотворювати або втрачати дані під час імпорту, зокрема через дублікати заголовків, порожні поля й хибне перетворення значень.

🔸 RubyMine 2026.1: AI Chat Upgrades, New Code Insight, Stable Remote Development, and More — огляд нового випуску RubyMine з оновленим чатом для роботи з АІ, новими засобами аналізу коду та стабільною віддаленою розробкою.

Подкасти

Drifting Ruby

📌 Optimizations — епізод про те, як пришвидшити сторінку в Rails і не впасти в крайнощі між недооптимізацією та зайвою складністю.

📌 Daylight Savings — випуск, присвячений роботі з переходом на літній і зимовий час у Ruby on Rails.

📌 Delegated Types — короткий розбір патерну delegated types у Rails і способів його використання в застосунку.

📌 Once CLI — випуск про Once CLI, який дає змогу послатися на Docker-образ і розгорнути його на сервері.

📌 Kamal Staging — розбір, як налаштувати staging-середовище в Rails за допомогою Kamal.

Remote Ruby

📌 Jeff Dickey on Mise, Precompiled Rubies, and much more — епізод про mise, поширення Ruby через попередньо зібрані версії, складнощі з інструментами командного рядка та супутні проєкти Jeff Dickey.

📌 Heroku, Hosting, and the AI Era — розмова про те, що відбувається з Heroku, як це впливає на розгортання Rails-застосунків і які виклики постають перед інструментами розробки в епоху AI.

📌 Unraveling GitHub Actions & Modern Auth Challenges — розбір складної налагоджувальної роботи з GitHub Actions, сучасних проблем автентифікації та суперечливого досвіду використання AI-інструментів у розробці.

📌 Conferences, AI Trends, and Sleepless Nights — огляд про конференції Ruby, складну роботу з автентифікацією, практичну користь штучного інтелекту для налагодження та досліджень і критичний погляд на ширші наслідки його розвитку.

RWpod

📌 01 випуск 14 сезону. Ruby 4.0.1, Heroku: What’s Next, TypeScript 6.0 Beta, ESLint v10.0.0, Libgd-gis та інше — випуск про новини зі світу Ruby і веброзробки, зокрема Ruby 4.0.1, майбутнє Heroku, TypeScript 6.0 Beta, ESLint 10 і нові інструменти та бібліотеки.

Подобається дайджест? Підписуйтесь на автора, щоб отримувати сповіщення про нові публікації на пошту.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось7
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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