MVC2 e Webwork  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 348
Localização: São José dos Campos
Offline

Olá,

Estou estudando Webwork e estava vendo os exemplos das Actions e me ocorreu uma dúvida:

Nos exemplos do Webwork as validações dos campos são feitas nas actions, mas as validações não seriam responsabilidade da camada Model, ou estou falando besteira???

Grato.

Alexandre



Hoje tem Balada
https://apps.facebook.com/hojetembalada
Guia colaborativo de baladas, bares e restaurantes
[WWW]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

As Actions são tua camada de regras de negócio, Model é tua camada de banco, num ambiente MVC2 não tem por que as validações ficarem no Model.

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 348
Localização: São José dos Campos
Offline

Olá Rafael Nunes,

Não é bem isso que pessoal diz aqui http://www.guj.com.br/posts/list/18940.java

Mas, me confundo um pouco até que ponto devo separar as camadas...

Alexandre



Hoje tem Balada
https://apps.facebook.com/hojetembalada
Guia colaborativo de baladas, bares e restaurantes
[WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Como assim, feitas na action, cara-palida?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Bem, conforme foi discutido lá, eu não vejo problemas em deixar as validações na Action, quando é uma app simples(me precipitei afirmando em deixar as validações na Action sem especificar as situações), em sistemas mais complexos você cria teu domínio e a partir dele faz as validações e regras de negócio necessárias, creio que num ambiente assim tua Action serviria mais como um Business Delegate.
Só não vejo sentido em deixar validações para a tua camada Model.
É uma opção tua deixar ou não as validações na Action, só basta analisar o que isso pode lhe trazer futuramente.

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Rafael Nunes wrote:As Actions são tua camada de regras de negócio, Model é tua camada de banco, num ambiente MVC2 não tem por que as validações ficarem no Model.


Posso clarificar umas coisas antes? "MVC2" nao existe. Ou voce esta falando de Model-View-Controller (MVC), ou vc ta falando de Model 2 (que eh um sinonimo de MVC de qqer forma).

Model nao eh "a camada de banco". O domain model eh onde fica (ou deveria ficar) toda a inteligencia de negocios do seus sistema, e isso provavelmente nao eh soh a persistencia pra justificar de chamar ela de "camada de banco", a menos que o seu sistema seja muuuuuuuito chato

[Email] [WWW] [Yahoo!] [MSN] [ICQ]
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 348
Localização: São José dos Campos
Offline

Olá CV,

Falo de regras de negócio nas actions... isso me preocupa: e se amanhã eu resolvo utilizar outro framework MVC? Fico muito amarrado não fico?

Não tenho muita experiência com MVC2 e gostaria de entender qual a melhor forma de trabalhar.

Devo ter uma Action que chama um Servlet para processar regras de negócio? E a validação de campos (tipo e-mail inválido...) deve ser feita realmente nas actions? Se devo ter esse Servlet, ele deve chamar outra Action (do controller) pra depois direcionar para uma JSP?

É mais ou menos isso que estou com dúvidas...

Um exemplo de arquitetura cairia bem.

Grato.

Alexandre



Hoje tem Balada
https://apps.facebook.com/hojetembalada
Guia colaborativo de baladas, bares e restaurantes
[WWW]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Caraleo, ou eu sou analfabeto funcional, ou aquele Struts in Action é muito tosco.
De qualquer forma, eu já utilizei o Struts e o Webwork em duas apps.
No Struts como eram operações CRUD e quase não haviam validações e regras de negócio, eu fazia tudo nas Actions. No Webwork eu utilizei as actions apenas como Business Delegates.

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Esse livros são porigosos mesmo.
Estava lendo uma livro de EJB e ele dizia para colocar as regras de negócio nas Sessions Beans.

O bom menino !!!
fmeyer
Moderador
[Avatar]
Membro desde: 22/02/2005 17:26:29
Mensagens: 1583
Localização: Sao Paulo
Offline

jprogrammer wrote:Esse livros são porigosos mesmo.
Estava lendo uma livro de EJB e ele dizia para colocar as regras de negócio nas Sessions Beans.


Qual Livro ???

Fernando Meyer http://fernandomeyer.com
[Email] [WWW]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Era o aprenda J2EE em 21 dias.
Ele não dizia isso explicitamente mas era a ideia que ele passava.
Mas acredito que era apenas para smplificar a abordagem não que os autores estavam errados.
Pois o livro foca J2EE não programação OO.

O bom menino !!!
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

J2Alex wrote:Falo de regras de negócio nas actions... isso me preocupa: e se amanhã eu resolvo utilizar outro framework MVC? Fico muito amarrado não fico?

(...)

Um exemplo de arquitetura cairia bem.


No caso do WebWork, vc fica tao pouco amarrado que nao tem tanto problema (afinal, Action eh uma interfacezinha de nada e tal). Se voce for trocar de framework, suas actions provavelmente vao ter que sofrer um refactoring meio fortinho, entao nao adianta muito falar sobre isso: voce vai ter que mexer no codigo das actions de qualquer jeito caso tome uma decisao dessa, assim como voce teria que mexer alguma coisa no codigo do teu modelo caso resolvesse trocar o Hibernate por JDO.

[Email] [WWW] [Yahoo!] [MSN] [ICQ]
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 348
Localização: São José dos Campos
Offline

Certo CV,

Mas o que vc me diz: a lógica de negócio fica ou não nas actions? (Acho que já sei a resposta...)

Qual a melhor forma de se dividir as responsabilidades?

Alexandre



Hoje tem Balada
https://apps.facebook.com/hojetembalada
Guia colaborativo de baladas, bares e restaurantes
[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Como o cv disse, as regras de negócio ficam no seu domain model (a menos que você não queira usar um domain model, e se for o caso por favor me explique sua idéia porque estou querendo saber mais sobre isso). Suas actions são fluxos customizados, numa aplicação pequena elas podem servir como camada de aplicação, que diz aos objetos de negócio o que elas querem (não como fazer).

Não coloque regra de negócio em actions a menos que você estja conscientemente produzindo um sistema altamente procedural e acoplado. Eu sei, vivo isso e sei a mer&$&% que é tentar reutilizar lógica neste ambiente.

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 348
Localização: São José dos Campos
Offline

Olá pcalcado,

É justamente o que eu estou pensando: a melhor maneira de reduzir as dependências, o acoplamento.

Como eu disse, não tenho tanta experiência com MVC (eu desenvolvia em ASP ) e estou buscando a melhor maneira de desenvolver software de fácil manutenção.

Pra camada view eu decidi usar o freemarker, até aí tudo bem. agora estou estudando Webwork, blz, entendi perfeitamente o seu funcionamento, so fiquei em dúvida com relação ao papel do controller e do model.

Pretendo usar Spring pra camada de negócios, mas ainda não comecei a estudar. Mas já estou divagando antecipadamente. Qualquer dica é bem vinda.

Grato.

Alexandre



Hoje tem Balada
https://apps.facebook.com/hojetembalada
Guia colaborativo de baladas, bares e restaurantes
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team