Gerador de codigo. Qual a sua opiniao?

Ola pessoal,
Eu tenho uma opiniao sobre geradores de codigo e queria saber mais opinioes sobre esse assunto.
Acredito que utilizar um gerador de codigo inicialmente tem um ganho na produtividade em projetos minusculos (bem pequenos mesmo). Porem, na hora de fazer um sistema profissional, enterprise, uma ferramenta de geracao de codigo nao deve nem ser levada em consideracao.

Eu particularmente nao vejo bem as ferramentas de geracao de codigo. Nao consigo pensar em um sistema com uma arquitetura consideravel sendo gerado por uma ferramenta com esta.

Alguem utiliza gerador de codigo para criar sistemas enterprise ?
Geradores de codigo sao levados a serio ?

Abracos a todos.

Acho que geradores de código são bem-vindos quando você tem as seguintes situações:

  • Você vai fazer código para rodar só na sua empresa;
  • Ele não precisa interagir com outros sistemas;
  • Você não precisa fugir do “feijão-com-arroz” desses geradores.

É que normalmente você não consegue “manter o código gerado”; você tem é de regerar o código.

[quote=odair.bonin]Ola pessoal,
Eu tenho uma opiniao sobre geradores de codigo e queria saber mais opinioes sobre esse assunto.
Acredito que utilizar um gerador de codigo inicialmente tem um ganho na produtividade em projetos minusculos (bem pequenos mesmo). Porem, na hora de fazer um sistema profissional, enterprise, uma ferramenta de geracao de codigo nao deve nem ser levada em consideracao.

Eu particularmente nao vejo bem as ferramentas de geracao de codigo. Nao consigo pensar em um sistema com uma arquitetura consideravel sendo gerado por uma ferramenta com esta.

Alguem utiliza gerador de codigo para criar sistemas enterprise ?
Geradores de codigo sao levados a serio ?

Abracos a todos.[/quote]

Eu acredito no ditado “se vc quer uma coisa bem feita, faca vc mesmo”, acho que um programa gerador de codigo nunca vai substituir um desenvolvedor. Porque pra mim um programa que gera o codigo pra vc, nao esta preparado pra assumir questoes de performance, seguranca, reutilizacao, manutencao e um monte de coisas coisas que uma equipe de desenvolvedores vai tomar conta.

Quando alguem fala em gerador de codigo pra mim soa igual tradutor eletronico. Pega um texto grande e joga num tradutor pra vc ver o que sai, aparentemente vai ter um monte de coisas corretas e olhando por cima a “cara” geral do texto traduzido eh boa, mas se vc analisar bem vai encontrar trocentos mil erros. Com certeza isso ocorre com esse tipo de aplicativo gerador de codigo.

Eu entrei em panico quando testei alguns plugins pra desenvolver coisas em Swing, o codigo mais bizarro que a mao do Lula. Acho que se eu ver um codigo de gerador de codigo eu vou ter um ataque do coracao.

Eu nunca usei e nunca vou usar por dois motivos:

  1. se o meu chefe um dia achar que ele pode usar um aplicativo pra fazer o trabalho ou inves de pagar o meu salario eu to no olho da rua.

  2. eu nao coloco o meu C* na reta usando esse tipo de programa.

:slight_smile:

//Daniel

Estou com o windsofhell,

Aliás nas entrevistas eu pergunto para o entrevistador se utilizam geradores de código. Se utilizam, eu descarto a oportunidade.

Geradores de código dizem bastante a respeito de quem utiliza, além dos problemas citados pelo windsofhell. Exemplos: Prazos malucos impostos por gerentes incompetentes, Líderes desorientados que acreditam em milagres ou grande escapadas, gerentes com visão só comercial que se acham espertos demais e por aí vai, a lista de porcarias que isso traz embutidas é gigante.

ATENÇÃO, não é que eu ache isto, EU presenciei (infelizmente) isto.

Estude bastante, tudo o que for possível, para nunca cair na ilusão de que um gerador de código vai te salvar.

Se alguém te disser que sai mais barato, pense no valor das customizações para atender as exceções e nas horas extras (enormes) para fazer uma coisa boba fora do previsto, se o cliente pagar em dinheiro e vc estiver precisando tudo bem (não me fale em banco de horas, combinado?).

System.out.println("Abraços");

Eu nao gosto de geradores de codigo pelo simples motivo que vc pode fazer tudo pro que normalmente se usaria um gerador de codigo em runtime - eh soh escolher uma linguagem decente :wink:

Unica geração de código que eu uso é o do eclipse (gerar get/set/construtor) - e eras.

Em um projeto que acompanhei foi proposto no começo o uso do NHibernate (porte do Hibernate para .NET), mas por essa proposta ter sido feita por alguém que não conhecia bem o NHibernate, foi rechaçada porque esse alguém não sabia usar o NHibernate com stored procedures (que são a única maneira de acesso ao banco aceita por esse cliente, por razões de segurança).

Acabaram desenvolvendo um “pseudo”-framework de mapeamento objeto-relacional que, obviamente, não foi projetado corretamente e acabou se manifestando como um monte de código gerado manualmente, super-repetitivo mas que é difícil até de gerar por um programa, porque há simplesmente muitos detalhes para levar em conta. Acabei escrevendo um geradorzinho de código - é que tinha visto que o código escrito manualmente tinha uma série de erros bobocas de omissão - mas, devido a tais problemas (os tais “detalhes”) acabou não sendo usado.

Amigos, acho que o amigo quer dizer os “geradores de sistemas”. Porque não vejo mal em gerador de codigo, se este ajuda na programação.

[]s

[quote=titanius]Amigos, acho que o amigo quer dizer os “geradores de sistemas”. Porque não vejo mal em gerador de codigo, se este ajuda na programação.

[]s[/quote]

O que me motivou a perguntar foi um tópico em noticias “25/05/2008 - J2EE Spider 1.0.0-M3: muitas melhorias”

Pra quem não conheçe ainda, o Spider é um gerador de código. Foi feito por uma pessoa só, o que é um trabalho notável.
Porém, acredito ainda que gerador não é levado a sério pra quem precisa fazer um sistema de verdade.

Percebi que a maioria das opiniões são parecidas.

Eu ainda não fiz nenhum trabalho prático em um gerador de código. Ainda não sei como seria um gerador de código utilizado como ferramenta seguindo processos de CMMi ou utilizando diagramas UML.

Alguem consegue dar dizer algo sobre isso ?

javax.swing.JOptionPane(“Abraços”, null);

O gerador de códigos resolve aquele velho problema de “Por onde começo?”. :lol:

Claro, a partir daí você dá um “jeits” no código gerado e começa a trabalhar pra valer. :wink:

Na minha opinião, essa pergunta é irrelevante pra qualquer “pesquisa”.
A minha resposta para isso é bem simples. Se você encontrou um gerador que se adeque à sua arquitetura e que vá facilitar a sua vida, USE-O, se não, NÃO.
Exemplo.
Já ouviu falar no HibernateSynchronizer?
Imagina se sua base de dados tem 500 tabelas e se vc for user Hibernate na sua aplicação.
Você vai mapear todas na mão e criar os xmls, e classes e daos e bla bla bla ???

Editado:

Trabalhei em um projeto, onde a empresa era CMMi5, e usávamos no mínimo três geradores de código, que se não me engano, economizaram mais de R$300.000,00 no projeto.

Abraço.

fabiozoroastro, não entendi muito bem o termo irrelevante para qualquer pesquisa.

Legal, vou procurar porque ainda nao conheço. Ultimamente estou utilizando JPA e não preciso mapear porque os “geradores de código” geram as classes.

O que eu estou questionando não é nem este tipo de gerador. Talvez seja mais gerado de sistema mesmo, como disseram anteriormente.

Acho que esta economia é devida as facilidades de uma IDE. Gerar get/set é uma facilidade, gerar mapeamento do hibernate é uma facilidade, tudo bem que pode ser considerado um gerador de código mas, sem por a mão de um desenvolvedor aquilo não vai fazer nada.

O que quero dizer com gerador de código é, a partir de uma descrição a ferramenta gera um produto final, sem colocar a mão do desenvolvedor.

Alguem conhece o CodeCharge ? :frowning:

Esse “produto” promete gerar seu sistema em qualquer linguagem que quiser (quase todas atuais).

Infelizmente estou migrando um sistema gerado nisso para a plataforma JEE. Pra ter uma idéia, a query fica junto com o JSP. As configurações de base de dados são descritas em um properties da web.

Ou seja, nenhum pattern é respeitado. Nem o MVC básico.

Estou penando pra entender as regras das telas mesmo sendo feito em java.

Abraço.

Code Generation vs. Metaprogramming: http://qcodo.com/documentation/article.php/6

[quote=thingol]Acho que geradores de código são bem-vindos quando você tem as seguintes situações:

  • Você vai fazer código para rodar só na sua empresa;
  • Ele não precisa interagir com outros sistemas;
  • Você não precisa fugir do “feijão-com-arroz” desses geradores.

É que normalmente você não consegue “manter o código gerado”; você tem é de regerar o código. [/quote]

Tava dando uma olhadinha no Qcodo (http://qcodo.com/), ele pega o seu banco e gera as classes correspondentes, junto com os formulários HTML para manipulação crúdica. Achei interessante que para cada tabela há duas classes: por exemplo, de uma tabela pessoa é gerada a classe PessoaGen, com funcionalidades CRUD, e Pessoa, que extende PessoaGen. Se você adiciona um campo na tabela por exemplo, PessoaGen é atualizada, mas não Pessoa. Pessoa nunca é gerada de novo, ela basicamente é uma classe vazia onde você adiciona sua funcionalidade. Assim você não teria problemas em manter o código.

Achei a idéia legal, e vocês?

E os geradores de GUI? O que acham?

Hmmm… Então, é gerador de sistema e não gerador de código. :slight_smile:
Nunca usei um gerador desse tipo. :slight_smile:
Abraço!

Eu não gosto muito da idéia de se utilizar geradores de código, nem mesmo para coisas como CRUD ou Getters e Setters. Normalmente, quando se usa este tipo de ferramenta, se acaba gerando mais do que o necessário para a resolução do problema, prejudicando a manutenção e a compreensão.

http://codificando.com/2007/12/12/programadores-escrevem-codigo-ferramentas-apenas-ajudam/

Não gosto de geradores de codigo pq eles te limitam muito… vc tem uma limitação enorme e complica se vc quiser expandir ou refatorar o codigo… vc fica preso a uma ferramenta… so ajudam se for algo que nunca precisara de refatoração ou expansão que seja aquilo e pronto… mas como 99% dos sistemas não ficam longe disto… ja os geradores de GUI são uma boa pois é um saco principalmente em java trabalhar com swing ou swt por exemplo… mas mesmo assim a forma que geram os codigos das GUI é uma porcaria… pelomenos no netbeans e assim…

Geradores de códigos são muito bons principalmente quando eles geram o código do jeito que o programador ou arquitetos querem … sem sujeiras ou aquelas porcariadas de controles que eles geram.
Eu mesmo já perdi a conta de quantos eu já fiz… hoje estou trabalhando em uma fábrica de software e sou responsável pela parte de automação, e esse nosso novo gerador é ótimo ele gera qualquer tipo de código fonte páginas jsp,aspx, classes java, vb, c#, relatórios jasper e até programas cobol tudo customizado sem ter que depender de um banco de dados criado sem muitas configurações e o melhor é que eu dou o modelo de fonte pra ele gerar e de uma forma muito simples.
Pra voces terem uma idéa em 1 ano eu já entregei 2 projetos completos fácil fácil então não tem coisa melhor do que geradores de código na minha opnião…