Com os Observadores removidos oficialmente do Rails 4.0 , estou curioso para saber o que outros desenvolvedores estão usando em seu lugar. (Além de usar a gema extraída.) Embora os Observadores certamente tenham sido abusados e possam se tornar facilmente difíceis às vezes, havia muitos casos de uso fora da limpeza de cache, onde eles eram benéficos.
Pegue, por exemplo, um aplicativo que precise rastrear alterações em um modelo. Um observador pode facilmente observar as alterações no modelo A e registrar essas alterações no modelo B no banco de dados. Se você quisesse observar mudanças em vários modelos, um único observador poderia lidar com isso.
No Rails 4, estou curioso sobre quais estratégias outros desenvolvedores estão usando no lugar do Observers para recriar essa funcionalidade.
Pessoalmente, estou inclinado a uma espécie de implementação de "controlador de gordura", onde essas alterações são rastreadas no método de criação / atualização / exclusão de cada controlador de modelo. Embora inche levemente o comportamento de cada controlador, ele ajuda na legibilidade e compreensão, pois todo o código está em um só lugar. A desvantagem é que agora existe um código muito semelhante, espalhado por vários controladores. A extração desse código em métodos auxiliares é uma opção, mas você ainda recebe chamadas para esses métodos espalhados por toda parte. Não é o fim do mundo, mas também não está no espírito dos "controladores magros".
Os retornos de chamada ActiveRecord são outra opção possível, embora eu pessoalmente não goste, pois tende a acoplar dois modelos diferentes muito próximos na minha opinião.
Portanto, no mundo do Rails 4, sem observadores, se você tivesse que criar um novo registro depois que outro registro fosse criado / atualizado / destruído, que padrão de design você usaria? Controladores de gordura, retornos de chamada ActiveRecord ou algo totalmente diferente?
Obrigado.