Ferramentas para geração de código

9 respostas
bandrade

E aí galera, tudo bom?

Minha questão é: Existe alguma ferramenta para geração de código para a plataforma JAVA? Procurei por aí, vi uns scripts aqui e outros ali, mas não achei nenhum tão completo quanto.

Se você já utilizou algum, o que achou do código gerado, e da facilidade de ‘customização’?

Trabalho com .net (C# e estou achando bem proveitoso). No meu projeto atual usamos duas ferramentas que, a partir do banco de dados, gera toda a camada de dados. Um é o codesmith, que é simplesmente um executor de scripts, a outra é o netTiers que é o script de geração propriamente dito.

O codigo gerado é relativamente bem feito, com infinitas possibilidades. Ele gera inclusive um site web CRUD bem simples, mas que economiza bastante tempo. Para a próxima versão, irá gerar telas para windows forms.

Eis os links:

http://www.codesmithtools.com/

http://nettiers.com/Home.aspx

Então, algo parecido ou próximo para Java?

Abraço.

9 Respostas

bandrade

Pessoal… dois meses depois…
Depois de mais buscas na internte, achei esse software

http://www.razorsource.com/SourceCutter/Overview.aspx

Alguém sabe me falar se ele é bom, a qualidade do software gerdo, etc.?

[]'s

Eduardo_Bregaida

Oq eu posso dizer?.. nao confie em ferramentas q geram códigos, por mais q pareçam bonitas nao substituem vc :lol:

kadekdu

não substitui mesmo!! nada como o velho e bom programador!!!

bandrade

Como assim?? para cada novo aplicativo que vocês fazem e que precise de um novo banco de dados vocês escrevem a Camada de Acesso a Dados novamente? Espero que não…

O principal uso dessas ferramentas é para isso, que é um trabalho chato e que pode ser automatizado facilmente, produzindo código de boa qualidade (pelo menos o nettiers).

As regras de negócio e famosas classes de controle (da uml) tem que ser feitas na mão, isso é inevitável. Mas fazer DAL é insuportável… );

[]'s

Eduardo_Bregaida

bandrade:
Como assim?? para cada novo aplicativo que vocês fazem e que precise de um novo banco de dados vocês escrevem a Camada de Acesso a Dados novamente? Espero que não…

O principal uso dessas ferramentas é para isso, que é um trabalho chato e que pode ser automatizado facilmente, produzindo código de boa qualidade (pelo menos o nettiers).

As regras de negócio e famosas classes de controle (da uml) tem que ser feitas na mão, isso é inevitável. Mas fazer DAL é insuportável… );

[]'s

Nem todo DAO é igual, alem do mais, não é tao chato assim, vc tbm pode fazer o inverso, cria depois manda gerar a UML :smiley:

bandrade

Bacana como as pessoas tem metodologias diferentes… (;

Bem, aki na empresa apos uma discussão sobre o produto, e o desenho de alguns casos de uso o Banco de Dados é modelado. Com o banco pronto, é gerado um diagrama de classes a partir dele as classes de controle (aonde ficam as regras de negócio) são adicionadas.

Depois, uma ferramenta (nettiers se c#, estou procurando uma para Java) gera a Data Access Layer e o desenvolvedor tem apenas que escrever a regra de negócio (classes de controle). Essa maneira funciona muito bem para mim.

Como usamos um gerador de codigo, a DAL fica igual em todos os nossos projetos, mudando apenas o nome das classes. Se o projeto for muito grande, o tempo perdido para escrever a DAL é maior ainda… e para piorar, se alguma ciosa precisar ser alterada no banco, com a geracao de codigo essa mudanca não consome tanto tempo (procurar no codigo o que foi alterado, fazer todas as modificacoes, etc.).

[]'s

RodrigoSol

Me conte duas coisas:

1 - Como fica a semantica OO do seu ORM?
2 - Já tentou colocar mais de 5 usuários simultâneos nos seus sistemas?

bandrade

RodrigoSol:
Me conte duas coisas:

1 - Como fica a semantica OO do seu ORM?
2 - Já tentou colocar mais de 5 usuários simultâneos nos seus sistemas?

1 - Configurado pelo script… o nettiers inclusive gera as colecoes de acordo com os relacionamentos… posso definir quais os nomes das classes criadas… colocar prefixos, sufixos, etc de acordo com o nome da Tabela ou configurando um nome para cada tabela… tem um arquivo para mapear isso… bem maleável.

2 - Temos sistemas com mais de 5 usuários simultâneos e está funcionando perfeitamente… você já enfrentou problemas de sincronismo ou disponibilidade com esse tipo de ferramenta?

[]'s

R

http://www.j2eespider.org/en/

http://jsenna.sourceforge.net/JSennaPortal/

Existem n outros que não lembro agora de cabeça assim.

Agora a minha opinião, assim como tudo na vida, a geração de código precisa ser usada com moderação. O que o pessoal acima está questionando (acredito eu), é correto gerar classes através do modelo de dados ?

O uso de DataSets, DataTables, DataRow do ADO.NET dificulta muito um mapeamento objeto x relacional, e geralmente são criadas classes representando tabelas o que no resultado final vira um modelo anêmico, fazendo com que a OO vire inimiga da produtividade.
http://www.fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs

Na revista Mundo Java Ed 23, tem uma matéria sobre o J2EE Spider e na matéria é citada outros frameworks também.
http://www.mundojava.com.br/NovoSite/23destaque.shtml

Na Mundo Java deste mês (Ed 24) tem uma matéria muito interessante sobre as diferenças das modelagens OO e MER.

Espero ter ajudado e bons estudos ! 8)

Roger Leite

Criado 23 de maio de 2007
Ultima resposta 30 de jul. de 2007
Respostas 9
Participantes 5