Simplesmente totalmente excelente! Bela referência para a gurizada que está iniciando seus estudos nesse ótimo framework. Que faz o que se propõem a fazer com total sucesso.
Cara, muito bom! Eu que estou iniciando, acho muito válido esse tipo de artigo para entender algumas coisas, que às vezes muitas referências tratam sem detalhes.
Bom, já era leitor desse meu grande amigo Lucas faz tempo, com posts como esse então…
Olá Lucas,
Concordo com você plenamente, muito mais legível deixar os parâmetros só no método que vai ser utilizado, só em alguns casos que não temos como fazer isso, que é quando passamos parametros em forma de lista, nestes casos eu volto a utilizar o @Parameter. Só um detalhe, você precisa mesmo da anotação @Logic nos métodos? nas minhas aplicações eu nunca utilizo e a injeção dos parametros ocorre perfeitamente.
Valeu, ótimo post.
Parabéns, pela iniciativa sou desenvolvedor JSE, e com grande interesse em Java For Web, na empresa que trabalho já utiliza-se o VRaptor então decidi conhecer melhor este projeto.
To usando essa abordagem e realmente ajuda nas logicas mais complexas.
Contudo tenho uns dois casos onde eu tenho várias chamadas ajax, e em todas elas eu tenho de colocar vários @Out, ‘estragando’ e trazendo o problema q vc apontou e mostrou como melhorar.
Vc tem alguma sugestão? Como as chamadas Ajax não tem redirect, não poderia usar o retorno do método, para contruir os objetos JSON | XML ?
@Logic (parameters = {”filtro”})
@Remotable
public int count(String filtro) { return 10; }
isso resolve os casos mais simples e vita encher de propriedades
imagina se tivesse
@Remotable
public void telefones(Pessoa p) { }
Muito bom post Lucas. Quanto a falar de Métodos Ágeis fora de Porto Alegre, consegui ano passado ir para Cachoeira do Sul falar sobre o assunto em uma Semana Acadêmica (falamos delas também). É um trabalho de formiguinha, mas se todos ajudarem, teremos cada vez menos pré-conceitos com relação a Metodologias Ágeis e mais pessoas praticando e entendendo seus benefícios.
Sim, o que não pode penso eu, é manter os olhos somente na aplicação, esquecendo que o cliente é quem define o que está Ok ou não.
Faço outra reflexão, se sou marceneiro e o meu cliente me pede uma mesa, posso usar as melhores ferramentas e práticas para a construção da mesma, mas se fizer isso sem dar a importância a opinião ou melhor, o que o meu cliente realmente deseja, o trabalho serviu apenas para me satisfazer, mas não o cliente.
Ou seja, façamos uso das nossas melhores técnicas e ferramentas, mas nunca nos esquecemos que é o cliente quem aprova.
Qualidade interna é sinal de maturidade/comprometimento profissional e não apenas execução de algo trivial.
Legal..mesmo..estou querendo fazer isso na minha aplicação…
mais não sei os imports que devo colocar…poderia colocar aihhh…coloquei os mais provaveis mais não deu…
gracias
Oi amigo!
Parabéns pelo código, eu não sabia deste recurso no Hibernate.
Gostaria de receber por email este código, já incluído os “IMPORTS” pois aqui não consegui fazer o código ficar direitinho, justamente pelas importações que não devem estar corretas.
Agilizando o ensino de métodos ágeis no meio acadêmico…
Acabei de ler um post de um grande amigo e colega, Lucas Toniazzo, sobre a adoção do ensino de métodos ágeis dentro do ensino superior. Juntando essa leitura, com a participação no Agile Weekend 2009 e o meu dia-a-dia como estudante de desenvolvi…
35 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Esse é o meu patrão! Muito boa leitura, só não abandona a bela idéia!
Aquele abraço!
É fato, afinal, só ele conhece o que é a verdade. E não podemos explicá-lo (e nunca poderemos). Sentir ele, de todos os tipos, sempre.
Abraço!
Bah! Bela pedida cara! Um abraço mestre!
Simplesmente totalmente excelente! Bela referência para a gurizada que está iniciando seus estudos nesse ótimo framework. Que faz o que se propõem a fazer com total sucesso.
Abraços!
Excelente artigo… simples, mas direto…
Também conheci o VRaptor a pouco tempo, e pelo pouco que usei, já percebi que o bicho é bom… rs
É isso aí….
Cara, muito bom! Eu que estou iniciando, acho muito válido esse tipo de artigo para entender algumas coisas, que às vezes muitas referências tratam sem detalhes.
Bom, já era leitor desse meu grande amigo Lucas faz tempo, com posts como esse então…
Falou cara!
Belo post. Valeu pelas dicas.
Olá Lucas,
Concordo com você plenamente, muito mais legível deixar os parâmetros só no método que vai ser utilizado, só em alguns casos que não temos como fazer isso, que é quando passamos parametros em forma de lista, nestes casos eu volto a utilizar o @Parameter. Só um detalhe, você precisa mesmo da anotação @Logic nos métodos? nas minhas aplicações eu nunca utilizo e a injeção dos parametros ocorre perfeitamente.
Valeu, ótimo post.
Opa…
O certo não seria:
@Logic (parameters={”pessoa”,”habilidade”})
public String addHabilidade(Pessoa pessoa, Habilidade habilidade){
this.habilidadeDao.save(habilidade);
pessoa.setHabilidade(habilidade);
return “ok”;
}
Tiago, valeu pelo toque!
Corrigido.
Parabéns, pela iniciativa sou desenvolvedor JSE, e com grande interesse em Java For Web, na empresa que trabalho já utiliza-se o VRaptor então decidi conhecer melhor este projeto.
Olá!
Gostaria de parabenizá-lo pelo código. Estou desenvolvendo um site, e tenho essa necessidade no preenchimento dos formulários.
Um abraço
Totalmente excelente, para um iniciante em VRaptor como eu, ficarei ancioso para as próximas dicas, ótimo artigo!
To usando essa abordagem e realmente ajuda nas logicas mais complexas.
Contudo tenho uns dois casos onde eu tenho várias chamadas ajax, e em todas elas eu tenho de colocar vários @Out, ‘estragando’ e trazendo o problema q vc apontou e mostrou como melhorar.
Vc tem alguma sugestão? Como as chamadas Ajax não tem redirect, não poderia usar o retorno do método, para contruir os objetos JSON | XML ?
@Logic (parameters = {”filtro”})
@Remotable
public int count(String filtro) { return 10; }
isso resolve os casos mais simples e vita encher de propriedades
imagina se tivesse
@Remotable
public void telefones(Pessoa p) { }
@Remotable
public void apelidos(Pessoa p) { }
@Remotable
public void enderecos(Pessoa p) { }
@Remotable
public void emails(Pessoa p) { }
Todos ajax numa PessoaLogic, rs
Muito bom post Lucas. Quanto a falar de Métodos Ágeis fora de Porto Alegre, consegui ano passado ir para Cachoeira do Sul falar sobre o assunto em uma Semana Acadêmica (falamos delas também). É um trabalho de formiguinha, mas se todos ajudarem, teremos cada vez menos pré-conceitos com relação a Metodologias Ágeis e mais pessoas praticando e entendendo seus benefícios.
Com a palestra no Brazil Scrum Gathering, acho que vou conseguir abrir mais a discussão, vamos ver.
http://www.scrumalliance.org/events/57-brazil-scrum-gathering
Em aramaico é mais bacana, o verdadeiro
Abwun d’bwashmaya
Nethqadash shmakh
Teytey malkuthakh
Nehwey tzevyanach aykanna d’bwashmaya aph b’arha.
Hawvlan lachma d’sunqanan yaomana
Washboqlan khaubayan (wakhtahayan)
aykana daph khnan shbwoqan l’khayyabayn
Wela tahlan l’nesyuna
Ela patzan min bisha
Metol dilakhie malkutha wahayla wateshbukhta
l’ahlam almin.
Ameyn.
O cliente é justamente a causa que tenho dado cada vez mais importância pra design. Afinal, o design da sua aplicação é o seu produto pro cliente.
Sim, o que não pode penso eu, é manter os olhos somente na aplicação, esquecendo que o cliente é quem define o que está Ok ou não.
Faço outra reflexão, se sou marceneiro e o meu cliente me pede uma mesa, posso usar as melhores ferramentas e práticas para a construção da mesma, mas se fizer isso sem dar a importância a opinião ou melhor, o que o meu cliente realmente deseja, o trabalho serviu apenas para me satisfazer, mas não o cliente.
Ou seja, façamos uso das nossas melhores técnicas e ferramentas, mas nunca nos esquecemos que é o cliente quem aprova.
Qualidade interna é sinal de maturidade/comprometimento profissional e não apenas execução de algo trivial.
Existe um pox.xml no código do vraptor:
http://github.com/caelum/vraptor/tree/master/vraptor-core/
só não vai com o VRaptor junto do release…
[]’s
Beleza.
Fica então mais esse conteúdo para ajudar.
Valeu pelo retorno. []’s
Sos un grande!!!!!! me salvaste la vida con este ejemplo gracias!!!!!!
Olá Lucas.
Tem como atualizar o pom.xml da instalação para a versão 3.0.2?
Eu troquei só a versão do vraptor e estou com problemas… não sei se é alguma versão de alguma dependência.
Legal..mesmo..estou querendo fazer isso na minha aplicação…
mais não sei os imports que devo colocar…poderia colocar aihhh…coloquei os mais provaveis mais não deu…
gracias
Oi amigo!
Parabéns pelo código, eu não sabia deste recurso no Hibernate.
Gostaria de receber por email este código, já incluído os “IMPORTS” pois aqui não consegui fazer o código ficar direitinho, justamente pelas importações que não devem estar corretas.
Obrigado.
time o mesmo problema. é só colocar o arquivo da fonte no classpath da aplicação.
Oi Lucas!
Finalmente temos o vraptor no repositorio!
br.com.caelum
vraptor
3.1.1
abracos
Mesmo vi a notícia no site do VRaptor!
Parabéns novamente para a equipe toda!
Cara Muito Bom mesmo…..
a imagem do print exemplificando a explicação não carrega.
No caso colocar o arquivo da fonte no classpath da aplicação, é necessário um jar?
Pena que é um recuso que não está disponível para a versão Google App Engine do framework…
Lucas, você pode postar a imagem novamente? O link está quebrado!
Valeu!
Obrigado Lucas vai me ajudar muito este seu post
lucas, realmente parabens pelo post! muito bom mesmo, objetivo e com boa didática
.
abracos,
É uma questão de logica, sem o cliente não tem produto , sem o produto não tem o cliente, temos que valorizar os dois!
Continuing the Discussion