Плюсы и минусы использования обратных вызовов для доменной логики в Rails

В чем вы видите преимущества и недостатки использования обратных вызовов для логики домена? (Я говорю в контексте проектов Rails и / или Ruby.)

Чтобы начать обсуждение, я хотел бы упомянуть эту цитату изMongoid страница о обратных вызовах:

Using callbacks for domain logic is a bad design practice, and can lead to unexpected errors that are hard to debug when callbacks in the chain halt execution. It is our recommendation to only use them for cross-cutting concerns, like queueing up background jobs.

Мне было бы интересно услышать аргумент или защиту этого требования. Он предназначен для применения только к приложениям, поддерживаемым Mongo? Или он предназначен для применения в базах данных технологий?

Казалось бы, чтоРуководство по валидации и обратным вызовам ActiveRecord в Ruby on Rails может не согласиться, по крайней мере, когда речь идет о реляционных базах данных. Возьмите этот пример:

class Order < ActiveRecord::Base
  before_save :normalize_card_number, :if => :paid_with_card?
end

На мой взгляд, это прекрасный пример простого обратного вызова, который реализует доменную логику. Это кажется быстрым и эффективным. Если бы я воспользовался советом Монгоидов, куда пошла бы эта логика?

Ответы на вопрос(6)

Ваш ответ на вопрос