TGViewer
Codica - корисне про IT Codica - корисне про IT @codica · 2.08K subscribers
Post #4963 224
➡️ Callbacks: зручно, поки не стає боляче

Callbacks створюють неявну бізнес-логіку, яку важко відстежити, тестувати й контролювати.
Ми всі так робили 🙂

Як це виглядає


class Order < ApplicationRecord
after_create :send_email
after_save :update_statistics
after_commit :sync_with_crm

private

def send_email
...
end
end


Спочатку — зручно.
Потім у моделі вже 6 callback-ів.
А потім ти не можеш пояснити, чому щось запускається двічі.

У чому проблема
🔹 Логіка стає неявною
🔹 Побічні ефекти розкидані
🔹 Важко зрозуміти порядок виконання
🔹 Тести стають крихкими
🔹 Дебаг займає більше часу, ніж написання

Callbacks — це implicit behavior.
А implicit behavior складно масштабувати.

Де особливо небезпечно
• фінансові операції
• інтеграції з зовнішніми сервісами
• зміна статусів
• створення пов’язаних записів

Особливо якщо callback викликає ще одну модель… яка має свої callbacks.

Що робити замість цього?

1️⃣ Явна бізнес-логіка


CreateOrder.new(params).call


Service object робить те, що написано.

2️⃣ after_commit замість after_save
Якщо вже використовуєш callback — не роби побічні ефекти до коміту в БД.

3️⃣ Мінімізувати кількість callback-ів
Якщо їх більше 2–3 — це сигнал задуматись.

Маленьке правило, що рятує нерви
Якщо ти не можеш швидко відповісти “чому цей код спрацював” — подивись у callbacks.

Скільки callback-ів максимум ви бачили в одній моделі? 😄

TikTok | Instagram | Telegram
  • 👍 3
More from @codica
  1. Oct 11, 2026Англійська за мемами😜 👉 Говоримо красиво 📍 old folks — літні люди, старші люди (розмовн…
  2. Oct 10, 2026Друзі, вже субота!! Ураа! #codica_weekend Давайте піднімемо собі настрій новою добіркою ай…
  3. Oct 9, 2026🐞 5 шпаргалок для QA, які бережуть нерви перед релізом Коли реліз уже близько, останнє, ч…
  4. Oct 9, 2026📚 Народ, ми тут дещо затіяли. Запускаємо серію IT-шпаргалок на всі випадки життя — від «я…
  5. Oct 9, 2026Тож перша десятка вже тут 📚 Зберігайте, пересилайте друзям і… поїхали читати 🚀 🛒 — поси…
  6. Oct 9, 2026🤖 40 КНИГ, ЩОБ РОЗІБРАТИСЯ В AI — ВІД НУЛЯ ДО AGI Друзі, знайшли для вас аж 40 книг про A…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →