Boa tarde pessoal, este é parte do material de uma lista de discussão que gostaria de expor aqui no forum para obter outras possíveis soluções de como fazer um bom projeto de software, o software a ser construído é um ERP e esta sendo refatorado pois alguns conceitos mudaram durante o desenvolvimento do software.
Caso vc note algo de errado vc pode postar aqui mesmo como poderiamos melhorar o desenvolvimento, porem se vc quiser participar da lista de discussão peço que acesse o seguinte endereço http://groups.google.com/group/itrust-erp
Muito Obrigado
Eu estou definindo o modulo de login e segurança do sistema, como este é nosso primeiro domínio existe muita coisa a ser discutida entre os especialistas de software, talvez os peritos do domínio fiquem ausente nessas primeiras discussões pois precisamos definir quais tecnologias serão usadas e como resolver de forma pratica os problemas do mundo real sem prender o design do código a uma determinada solução.
1)Com relação a persistência dos dados eu proponho usar Hibernate com JPA.
2)Controle de transações através de um container de inversão de controle para abstrair a forma como este controle é realizado.
3)Disponibilizar dados na camada de apresentação web usando um webframework JavaServer Faces.
4)Implementar interatividade com o cliente usando o framework AJAX4JSF
5)Para acrescentar uma boa aparência na interface web podemos usar alguns componentes do RichFaces.
6)Para adicionar interatividade com outros sistemas sugiro criar alguns webservices.
7)Para implementar uma boa integração entre os especialistas de software e metodologia de software sugiro implementar os conceitos de Domain Driven Design, Extreme Programing e Scrum.
Observações:
Particularmente não pretendo implementar qualquer outro framework, acredito que os frameworks acima devem suprir a maior parte das nossas necessidades, porem eu não sou dono da razão e outras frameworks podem ser apresentadas como possíveis soluções e as apresentadas acima podem até mesmo serem substituídas por outras mais eficientes, desde que seja comprovada a sua eficiência.
As frameworks apresentadas acima já estão implementadas e testadas dentro do sistema, mas se existe outras melhores essa é melhor hora para mudar e questionar as frameworks usadas e ate mesmo a metodologia usada.
Caso alguém tenha duvidas sobre o que é Domain Driven Design, Extreme Programing e Scrum, peço que aguarde a confecção dos próximos artigos em http://www.iprogramming.blogspot.com
Eu adicionei o ultimo artigo fazendo referência ao controle de transações com springframework o qual é usado hoje no ITrust, porem como o projeto esta sendo refatorado nos próximos artigos eu vou descrever o que é o Domain Driven Design, como esta metodologia esta sendo aplicado ao ITrust, como o código foi refatorado e etc.
Outros pontos precisam ser ajustados pois mesmo refatorando o código eu ainda estou quebrando algumas regras, mas dessa vez propositalmente, um exemplo claro é o uso do Active Record.