| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2006 17:38:44
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Olá,
O que vocês acham de actions codificadas em linguagens dinâmicas?
Estou pensando em usar isso. Como as actions fazem parte do controller, o que eles devem fazer de verdade e chamar a camada de negócio, passando os dados da camade de visão devidamente validados e formatados (desde que essa validação e formatação não tenha uma lógica de negócios muito "pesada").
Geralmente não fazem muito processamento, ou seja, não vamos ter muitos problemas com performace. E com Groovy por exemplo, é possível compilar e aumentar um pouco a performace.
Eu acho que isso traz um ganho de produtividade considerável...
Alguém já teve alguma experiência com isso? O que achou?
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2006 17:51:29
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
To fazendo isso num projeto onde estamos utilizando Spring 2 + Groovy. Como o Spring 2 tem suporte direto pra carga de objetos em outras linguagens dinâmicamente (incluindo aí quando você altera o fonte e ele percebe na hora e recarrega o objeto), as coisas tem indo muito bem.
A idéia mesmo era fazer com que quase todo o desenvolvimento fosse feito com Groovy, mas como ainda tem gente que não está acostumada, não dá pra obrigar né
Mas action agora, só escrito e carregado dinâmicamente
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2006 22:12:46
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
E o suporte a refactoring, como fica?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2006 22:30:38
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Explique-se...
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2006 23:10:25
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Ok, vamos supor que vc escreve as views usando freemarker e as actions em javascript, jython ou jruby.
Ou seja, o minimo de codigo java que acaba sobrando no seu projeto eh o modelo de dominio e uns pedacos de hibernate aqui e ali.
Dai vc percebe que, na verdade, Account eh uma *instancia* de Product, e instancias de Product sao ProductHoldings, e esses objetos tem semanticas completamente diferentes do que vc estava esperando.
Voce usa Eclipse ou IntelliJ.
O que vc faz? Senta no canto e chora, ne?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/07/2006 14:39:12
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Ah, bem, aí você esta falando do problema de linguagens com tipagem fraca.
Eu particularmente prefiro usar uma linguagem dinâmica (no sentido de ser totalmente interpretada) mas com tipagem forte.
Bem, o que pode ser feito para contornar o problema para quem usar tipagem fraca?
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2006 10:00:13
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Eu tinha pessando nisso, quando soube que o Java 6 iria suportar linguagens de script de forma dinâmica. Então pensei, então poderiam construir frameworks como RoR de forma que dentro do Java tive-se uma aplicação rails quase que idêntica a uma RoR.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2006 10:23:11
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
A diferenca eh que, numa app escrita em Rails, quase todo o "codigo" eh Ruby - e tem um nadica de YAML.
Numa aplicacao J2EE, voce pode usar umas 4 ou 5 "linguagens" diferentes antes de perceber:
- JSP / Velocity / FreeMarker
- Properties
- Hibernate XML
- web.xml
- Java
Jogando Jython, Rhino ou JRuby em cima, vc dificulta ainda mais qualquer refactoring, pq nao so as suas ferramentas tem que conhecer todas essas linguagens, mas vc tb tem que ser capaz de saber onde as referencias a objetos de outros mundos tao vindo, e se eles vao ou nao ser afetados.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2006 14:30:03
|
agsilva
JavaChild
Membro desde: 17/07/2006 20:17:47
Mensagens: 142
Offline
|
cv wrote:A diferenca eh que, numa app escrita em Rails, quase todo o "codigo" eh Ruby - e tem um nadica de YAML.
Numa aplicacao J2EE, voce pode usar umas 4 ou 5 "linguagens" diferentes antes de perceber:
- JSP / Velocity / FreeMarker
- Properties
- Hibernate XML
- web.xml
- Java
Jogando Jython, Rhino ou JRuby em cima, vc dificulta ainda mais qualquer refactoring, pq nao so as suas ferramentas tem que conhecer todas essas linguagens, mas vc tb tem que ser capaz de saber onde as referencias a objetos de outros mundos tao vindo, e se eles vao ou nao ser afetados.
Puxa, tens toda razão cv. Mas, e se fosse usada apenas uma linguagem, como Groovy? Acho que não seria tão afetado, desde que a equipe toda estivesse por dentro.
Ah, só pra destacar: dá pra contornar o Hibernate XML usando Hibernate Annotations.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/07/2006 11:12:33
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Se você mantêm actions muito simples uma linguagem mais leve pode facilitar, desde que:
1 - Ela elimine algumas das chatices de trabalhar com Servlets/HTTP/Request-Response, se não use Java
2 - Você não tenha um acoplamento tão forte com seus objetos de domínio. Meia dúzia de gets, iterações, poucos condicionais e só.
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2006 10:46:20
|
rodrigoy
GUJ Ranger
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline
|
Deixa eu dar os meus $0,02... no caso do struts, abusar do jakarta commons ajuda um pouco. Vcs conhecem o LazyValidatorForm? Segue um exemplinho:
O JSP:
A action:
O struts-config.xml:
Moral da história. Com o LazyForm tudo que está no JSP vai para a Action. Com o copyProperties tudo que está no entity é copiado para o Form. O Lazy form dá uma tipagem mais leve para o form do struts.
|
Rodrigo Yoshima
www.ASPERCOM.com.br
Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro
Débito Técnico Blog: blog.aspercom.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2006 12:18:51
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
Bom.. eu ja fiz um framework academico de MVC onde um dos hotspots eram valicações em scripts (groovy ou beanshell) como um aspecto (antes de chegar no action mesmo)
mas o action em si mesmo em script eu já nao sei o que ele tras de tão vantajoso, e até pode atrapalhar no refactoring como ja disseram
|
loogica - http://blog.loogica.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/09/2008 14:46:20
|
SpeedRace.Claude
What is classpath?
![[Avatar]](/images/avatar/177cab79f0687e2ae5d883d4acf44e5c.jpg)
Membro desde: 10/09/2008 18:21:38
Mensagens: 7
Offline
|
PessoALL, eu estou precisando estudar uma dessas linguagens que trabalham com JAVA.
EX: JSP, Velocity, Groovy.
Estou no Rio de Janeiro e estou procurando cursos para trabalhar com isso.
This message was edited 1 time. Last update was at 12/09/2008 14:56:31
|
|
|
 |
|
|