dúvida modelagem rails  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
dlt
JavaEvangelist
[Avatar]

Membro desde: 20/12/2007 16:30:29
Mensagens: 367
Localização: Belo Horizonte
Offline

Tenho uma aplicação rails e tenho uma entidade Ticket que tem pode ter um status de cada vez.
Esse ticket tem um 'ciclo de vida' e esse ciclo vai se completando na medida que os usuarios do sistema mudam seu status.

Os status do ticket são mudados na view dele através de um combobox, e cada vez que o status é alterado uma série de 'eventos' são disparados alterando o estado de outros objetos do sistema, enviando e-mails, etc..

Acontece que como a aplicação está crescendo estou com medo do spagethi que tá virando meu código.
Gostaria de susgestões de como gerenciar as mudanças de status e os eventos que são disparados quando elas mudam.
Quero separar esse comportamento todo em uma classe, de modo que depois fique mais fácil de testá-lo usando uma ferramenta de testes.

Toda opinião é bem-vinda!

"It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?" - Alan Perlis
Caike
HelloWorld
[Avatar]

Membro desde: 18/05/2006 01:34:45
Mensagens: 10
Localização: Rio de Janeiro
Offline

Já deu uma olhada no acts_as_a_state_machine ?
Acho que resolve seu problema.

"as simple as possible, but not any simpler"
[WWW]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Bom, não conheço a sugestão do colega acima, desculpe se minha sugestão for muito "pensamento de programador Java", mas em Java eu pensaria em usar algo como a pattern State (http://en.wikipedia.org/wiki/State_pattern).

Uma vez vi em um projeto uma coisa bem bacana, o cara fez o atributo status ser uma enum e colocou metodos na "interface" da enum e cada "valor" da enum implementando essse status duma maneira diferente. Quem sabe não rola fazer algo assim.



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team