Annotations poluem o codigo?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
jack_-_ganzha
JavaEvangelist
[Avatar]

Membro desde: 31/03/2003 13:18:12
Mensagens: 315
Localização: Recife - Pernambuco
Offline

Vejam essas classes:




E algumas observações:
1. Acredito que depois de algum tempo, o Tiger se tornará padrão e annotations serão a maneira mais comumente usada para fazer o mapeamento com o Hibernate (e talvez outros concorrentes). Apesar de ser possivel mapear algumas classes com xml e outras com anotações, não me parece adequado misturar as duas coisas;
2. NamedQueries, as quais podem conter hql muito grandes, podem ser colocadas em um package-info, então, elas não necessariamente ficarão nas classes de dominio, o que alivia a quantidade de annotations nessas classes;
3. Em projetos maiores, outros conjuntos de annotations podem ser usados e a quantidade de metadados pode crescer um bocado;
4. Eu acho annotations um recurso extremamente util;

E a pergunta, annotations são muito verborágicas e deixam o codigo poluido? Ou falta apenas se acustumar com elas?

valeuz...

Marcos Silva Pereira

http://www.javafree.org
http://marcospereira.wordpress.com
[MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Hibernate precisa de muita configuração. Já que há ferramentas para gerá-la quase toda para você, qual o problema de deixar no coitado do XML?

Código azul fede

Former LIPE.
[ICQ]
kuchma
Moderador
[Avatar]

Membro desde: 17/01/2003 19:36:16
Mensagens: 1231
Localização: Curitiba - PR
Offline

Pode nao ter caido minha ficha ainda, mas acho isso um retrocesso. Primeiro faziamos tudo no codigo com numeros magicos. Depois foram movidos pra constantes. Depois extraiu-se as configuracoes relevantes para properties/XML/TXT/[qualquer coisa que nao seja compilado no codigo].

Nessa ultima etapa perdeu-se os recursos de verificacao em tempo de compilacao - mas a flexibilidade de poder alterar as configuracoes sem recompilar o codigo vale a pena na maioria dos casos.

Agora as anotacoes parecem querer trazer as coisas para o codigo, misturando configuracao e codigo e ainda perdendo a capacidade de deteccao de erros em tempo de compilacao (isso talvez seja contornavel).

Oras, o que eh de configuracao "complicada" (isso eh discutivel), como EJBs, Hibernate, etc, vai continuar sendo complicado, exceto se arrumarem um jeito "magico" de fazer a coisa - e esse jeito, IMHO, nao se resume a simplesmente mover as configuracoes de um lugar para outro.

Eh isso ai - desculpem se nao entendi o "espirito" das anotacoes e viajei na maionese.


Marcio Kuchma

E tu, Belém-Efrata, pequena demais para figurar como grupo de milhares de Judá, de ti me sairá o que há de reinar em Israel, e cujas origens são desde os tempos antigos, desde os dias da eternidade. Mq 5:2, Miquéias, 750 AC aprox.
[WWW] [ICQ]
vamorim
JavaEvangelist
[Avatar]

Membro desde: 21/11/2003 17:08:39
Mensagens: 481
Localização: Rio de Janeiro - RJ
Offline

kuchma wrote:Pode nao ter caido minha ficha ainda, mas acho isso um retrocesso. Primeiro faziamos tudo no codigo com numeros magicos. Depois foram movidos pra constantes. Depois extraiu-se as configuracoes relevantes para properties/XML/TXT/[qualquer coisa que nao seja compilado no codigo].

Nessa ultima etapa perdeu-se os recursos de verificacao em tempo de compilacao - mas a flexibilidade de poder alterar as configuracoes sem recompilar o codigo vale a pena na maioria dos casos.

Agora as anotacoes parecem querer trazer as coisas para o codigo, misturando configuracao e codigo e ainda perdendo a capacidade de deteccao de erros em tempo de compilacao (isso talvez seja contornavel).

Oras, o que eh de configuracao "complicada" (isso eh discutivel), como EJBs, Hibernate, etc, vai continuar sendo complicado, exceto se arrumarem um jeito "magico" de fazer a coisa - e esse jeito, IMHO, nao se resume a simplesmente mover as configuracoes de um lugar para outro.

Eh isso ai - desculpem se nao entendi o "espirito" das anotacoes e viajei na maionese.

Marcio Kuchma


A questão é que Anotações são menos verbosas que XML. Mas eu acho que seria muito melhor criar uma linguagem específica para fazer configurações. Groovy talvez seja a solução. Ou pelo menos ao invés de fazer assim:



fazer algo assim...


Vinci Pegoretti Amorim
http://vinci.blog.br
[Email] [WWW] [MSN] [ICQ]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

vamorim wrote:


fazer algo assim...



Para mim é a mesma coisa.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
jack_-_ganzha
JavaEvangelist
[Avatar]

Membro desde: 31/03/2003 13:18:12
Mensagens: 315
Localização: Recife - Pernambuco
Offline

kuchma, dá para fazer verificações em tempo de compilação sim, quer dizer, de que possiveis verificações vc está falando? Bom, isso não me parece ser uma bronca. Mas concordo com o fato de que algumas configurações ficam melhor fora do codigo.

vamorim, criar uma linguagem parece menos coerente do que alterar a sintaxe das anotações, não? Outra linguagem é meio overkill.

valeuz...

Marcos Silva Pereira

http://www.javafree.org
http://marcospereira.wordpress.com
[MSN] [ICQ]
vamorim
JavaEvangelist
[Avatar]

Membro desde: 21/11/2003 17:08:39
Mensagens: 481
Localização: Rio de Janeiro - RJ
Offline

danieldestro wrote:
vamorim wrote:


fazer algo assim...



Para mim é a mesma coisa.


Não reparou que o segundo é bem menos verboso?

Contando apenas os caracteres não-brancos temos 25 no primeiro e 13 no segundo. Ou seja uma economia de 50%.

Imagina a diferença em larga escala. Um arquivo XML de 1000 linhas por exemplo... Dá uma baita diferença na legibilidade...


This message was edited 1 time. Last update was at 06/07/2005 19:10:29


Vinci Pegoretti Amorim
http://vinci.blog.br
[Email] [WWW] [MSN] [ICQ]
pcalcado
Moderador
[Avatar]

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

Eu, o Vinci e um pessoal da PUC-RIo que esqueci infelizmente o nome tivemos uma conversa sobre isso na rodoviaria, voltando do STD.

Anotaçoes sao legais para MARCAR, nao para configurar. Por exemplo, voce deveria fazer algo assim (pseudocodigo):


E ter um outro lugar configurado que metodos marcados com @myTag sao logados, num XML, aspecto, properties, a la Mentawai ou qualquer outra coisa.

Agora fazer:



Cai no que o kuchma falou.

Complementando, annotations para mim sao como Serializable (tagging interfaces) feitos de maneira menos gambiarra

This message was edited 1 time. Last update was at 06/07/2005 19:31:15


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]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Nossa, que código engraçado. É Java?

Falando sério, annotations são bem legais para aquilo que o Shoes falou. Fora isso, dá vontade de chorar

Daniel Quirino Oliveira
[Email] [WWW]
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

Eu uso annotations nos meus posts

@+ para indicar os editados como este

@+ escroto

This message was edited 2 times. Last update was at 07/07/2005 19:19:15

noelrocha
Thread.start()

Membro desde: 12/07/2005 12:46:51
Mensagens: 32
Offline

As anotações do hibernate são uma alternativa pros XML ...

eu não gosto mto de XML, certa vez escutei "Quando foi que desenvolver em java foi criar arquivos XML?" ....

XML é uma boa saida, melhor q os properties ....

porem acho estranho ter a mesma quantidade XML que a de seus Beans ...

tudo bem, obvio .... mas bem, acho muito feio ....

as anotações ao meu ver trocam o problema de configurações de lugar ...
ao menos fica tudo consentrado e por mais q esteja poluido, fica mais facil de encontrar aonde você quer mudar .... exitem formas de diminuir as anotações e eu prefiro deixar o accessfield p/ property e deixar nos gets...

dessa forma quando você quer apenas visualizar a classe, fica mais legivel...

em fim ... configurações são um problema complicado ...

por mais q o hibernate3 tenha ajudado um pouco é um problema sem grandes soluções ...

as soluções são sempre a de trocar o problema de lugar ...
cabe a cada um decidir aonde vai querer ir quando tiver q resolver um problema ....


[]´s
________
Noel R. Morais
carneiro
JavaEvangelist
[Avatar]

Membro desde: 07/04/2005 11:37:42
Mensagens: 328
Offline

Sinceramente, acho um lixo encher o seu dao dessas anotações.

Gente, qual é o bixo de 7 cabeças em criar xml's? E se é assim, por que não usar ferramentas que gerar o xml?

E como se os xmls do hibernate fossem tão complicados!


Davi Luan Carneiro
Desenvolvedor JEE
[Email] [MSN]
jack_-_ganzha
JavaEvangelist
[Avatar]

Membro desde: 31/03/2003 13:18:12
Mensagens: 315
Localização: Recife - Pernambuco
Offline

carneiro wrote:Sinceramente, acho um lixo encher o seu dao dessas anotações.

Erhm, não é nos DAO's e sim nas classes de dominio! Eu gostei de anotações porque já estava bastante acostumado com XDoclet que, para novos sistemas, parece-me a abordagem mais apropriada. Claro que existem diferenças entre XDoclet e anotações, mas o proposito é o mesmo. Quanto a usar property access ao inves de field access, não acho que faça muita diferença não.

valeuz...

Marcos Silva Pereira

http://www.javafree.org
http://marcospereira.wordpress.com
[MSN] [ICQ]
carneiro
JavaEvangelist
[Avatar]

Membro desde: 07/04/2005 11:37:42
Mensagens: 328
Offline

jack_-_ganzha,

ooops, não prestei muita atenção. Mas, de qualquer forma, não acho que anotações caiam bem para gerar os xmls do hibernate.

Bem, apenas uma opiniao...

Valeu!

Davi Luan Carneiro
Desenvolvedor JEE
[Email] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Cara, aquela classe tem mais annotations do que código Java

Unghn!

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team