Vor- und Nachteile der Verwendung von Callbacks für die Domänenlogik in Rails

Welche Vor- und Nachteile sehen Sie bei der Verwendung von Rückrufen für die Domänenlogik? (Ich spreche im Kontext von Rails- und / oder Ruby-Projekten.)

Um die Diskussion zu beginnen, wollte ich dieses Zitat aus derMongoide Seite über Rückrufe:

Das Verwenden von Rückrufen für die Domänenlogik ist eine schlechte Entwurfspraxis und kann zu unerwarteten Fehlern führen, die schwer zu debuggen sind, wenn Rückrufe in der Kette die Ausführung anhalten. Es ist unsere Empfehlung, diese nur für Querschnittsthemen wie das Anstehen von Hintergrundjobs zu verwenden.

Es würde mich interessieren, welches Argument oder welche Verteidigung hinter dieser Behauptung steckt. Ist es beabsichtigt, nur auf von Mongo unterstützte Anwendungen anzuwenden? Oder soll es datenbankübergreifend angewendet werden?

Es scheint soDer Ruby on Rails-Leitfaden zu ActiveRecord-Validierungen und -Callbacks könnte nicht zustimmen, zumindest wenn es um relationale Datenbanken geht. Nehmen Sie dieses Beispiel:

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

Meiner Meinung nach ist dies ein perfektes Beispiel für einen einfachen Rückruf, der Domänenlogik implementiert. Es scheint schnell und effektiv. Wenn ich den mongoiden Rat befolgen würde, wohin würde diese Logik stattdessen führen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage