Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Como usuário, quero receber informações de dojos pelos temas para que eu possa acompanhar os de meu interesse. #10

Open
wparaujo opened this issue Apr 4, 2017 · 3 comments
Assignees
Milestone

Comments

@wparaujo
Copy link
Contributor

wparaujo commented Apr 4, 2017

No description provided.

@luanguimaraesla
Copy link
Contributor

Pensando em um módulo disparador de notificações, é possível que os temas dentro do software sejam tratados como labels ou tags, valendo-se de um sistema de referências internas para priorizar essas marcações. Quanto mais referenciada, mais alta sua posição em uma determinada classificação, que pode ser usada por exemplo para propor temas iniciais em um novo registro de usuário (abordagem adotada por sites como o Quora e o Pinterest).

Desse modo é possivel adotar o padrão Observer para construir um sistema de assinaturas que relacione usuário e tags, notificando o usuário sempre que um evento em tags ocorrer.

@luanguimaraesla
Copy link
Contributor

O ActiveRecord::Observer que havíamos planejado utilizar foi descontinuado no Rails 4. No Rails 5 não possuem nem workarounds para aplicar esse padrão sem necessariamente ter que codificar tudo na mão e violar o princípio de finalidade única de cada classe. Issue referente a impossibilidade de utilização no rails 5
Existe um padrão pub-sub que pode substituir de certa forma, mudando um pouco a arquitetura que tínhamos desenvolvido. Acredito que para o que precisamos no Rails 5 essa seja a melhor opção.

The Publish-Subscribe Pattern on Rails: An Implementation Tutorial

@luanguimaraesla
Copy link
Contributor

Foi decidido continuar desenvolvendo manualmente o Observer através de um módulo que define os métodos principais de notificação e observação. A título de pesquisa e avaliação da melhor solução, o padrão pub-sub, aconselhado pelos desenvolvedores do rails, será paralelamente implementado em outra branch.

Material utilizado para implementar o padrão observer:

  1. https://mauricio.github.io/2008/09/27/including-and-extending-modules-in-ruby.html
  2. http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
  3. https://medium.com/@mitchocail/observer-pattern-in-ruby-e80ac3c1dac7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants