Prós e contras de usar retornos de chamada para lógica de domínio no Rails

O que você vê como os prós e contras do uso de retornos de chamada para lógica de domínio? (Eu estou falando no contexto de projetos Rails e / ou Ruby.)

Para começar a discussão, gostaria de mencionar esta citação doPágina mongóide em retornos de chamada:

Usar retornos de chamada para lógica de domínio é uma prática de design incorreta e pode levar a erros inesperados que são difíceis de depurar quando os retornos de chamada na cadeia interrompem a execução. É nossa recomendação usá-los apenas para questões transversais, como filas de trabalhos em segundo plano.

Eu estaria interessado em ouvir o argumento ou defesa por trás dessa afirmação. Pretende aplicar-se apenas a aplicativos apoiados pelo Mongo? Ou se destina a aplicar em tecnologias de banco de dados?

Parece queO Ruby on Rails Guia para validações e retornos de retorno do ActiveRecord pode discordar, pelo menos quando se trata de bancos de dados relacionais. Veja este exemplo:

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

Na minha opinião, este é um exemplo perfeito de um retorno de chamada simples que implementa a lógica do domínio. Parece rápido e eficaz. Se eu fosse tomar o conselho mongoide, para onde iria essa lógica?

questionAnswers(6)

yourAnswerToTheQuestion