Fazendo meu projeto final,me confrontei com alguns problemas ao fazer a UML(e a posterior implementação!)de um Sistema de Informações Acadêmicas usando o Prevayler.
Sabe,acho q o pensamento relacional acaba influenciando(negativamente) o modo de pensar em modelagem e pensar puramente OO não eh tão fácil assim…
No sistema,Alunos podem consultar dados(pr1,pr2,final…),alterar dados cadastrais,renovar matrícula entre outros.
Professores podem lançar notas,frequências,alterar(notas e frequências)entre outras…
O problema eh:Qual a melhor(se eh q existe)forma de estruturar as classes para uma boa modelagem OO?Sabe,discutindo com o coordenador de Projeto,alguns pontos de falha ficaram expostos!
Exemplo:O Controlador corre o risco de ficar muito inchado com excesso de delegações(validações,redirecionamentos) e se eu isolar demais os atributos,corro risco de perder performance com a busca de dados nas classes(Lembre-se,no sistema q tô fazendo,a velocidade eh fundamental).Gostaria de um bom custoXbenefício entre patterns,performance e boa prática de programação.Sugestões?
Bom, minha primeira sugestão é a seguinte: já que seu sistema é prevalente, vc começa desenhando ele bem simples, sem fazer tanto MVC, isola bem só o view.
O pessoal andou falando sobre modelos de domínio anêmicos, e como a gente vence a tentação de ter várias classes que só guardam dado, não fazem nada.
Já que vc já sabe que vai usar o prevayler, vc pode pensar nas suas transações primeiro, e desenhar o modelo (i.e. a camada Model) baseado no seu conhecimento sobre os comandos que operam nele.
Vai contando como a coisa evolui, pra gente poder dar mais palpite!! (eu adoro dar palpite 8) )
[]s!
E nao deixe de dar uma olhada especial em “SchemaEvolution”, no site do Prevayler.
Rafael