Что вы видите как плюсы и минусы использования обратных вызовов для логики домена? (Я говорю в контексте Rails и/или Ruby-проектов.)
Чтобы начать обсуждение, я хотел бы упомянуть эту цитату на странице Mongoid по обратным вызовам:
Использование обратных вызовов для логики домена является плохой проектной практикой и может привести к неожиданные ошибки, которые трудно отлаживать, когда обратные вызовы в цепочке останавливаются выполнение. Мы рекомендуем использовать их только для сквозных проблемы, такие как постановка в очередь фоновых заданий.
Мне было бы интересно услышать аргумент или защиту по этому поводу. Предполагается ли оно применяться только к приложениям, поддерживаемым Mongo? Или он предназначен для применения через технологии баз данных?
Казалось бы, Руководство Ruby on Rails по проверке и обратным вызовам ActiveRecord может не совпадать, по крайней мере, когда речь заходит о реляционных базах данных. Возьмите этот пример:
class Order < ActiveRecord::Base
before_save :normalize_card_number, :if => :paid_with_card?
end
По-моему, это прекрасный пример простого обратного вызова, реализующего логику домена. Это кажется быстрым и эффективным. Если бы я должен был взять совет Монгоиды, куда бы взялась эта логика?