Projeto "J2EE Spider" renomeado para "SPIDER on Rails"

32 respostas
bgbraga

Para quem não sabe “J2EE Spider” é uma ferramenta baseada no eclipse (plug-in na verdade) que ajuda na criação e configuração de novos projetos. O objetivo é aumentar a produtividade reduzindo desperdício com tarefas repetitivas (configuração de frameworks, etc).

Bom, a notícia é que o projeto “J2EE Spider” foi renomeado para “SPIDER on Rails”. Isso está acontecendo para alinhamento do projeto com mudanças que serão lançadas em 2010.

Basicamente o projeto vai expandir e irá suportar outras tecnologias como Django e PHP além é claro de Java.
Então para um correto alinhamento estratégico foi removida a palavra “J2EE” do nome do projeto e criado um novo nome utilizando a palavra “Spider” demonstrando que também houve continuação das idéias iniciais.
A opção por SPIDER on Rails não é uma concorrência ao Ruby on Rails. É apenas um alinhamento com o que a ferramenta faz e será visto daqui para frente.

A URL http://www.j2eespider.org continuará existindo, mas redirecionará para http://www.spideronrails.org

Feliz Natal a todos!

baseado em: http://www.spideronrails.org/cnf/pages/viewpage.action?pageId=5111918

32 Respostas

Mauricio_Linhares

Sério, tira o Rails, coloca algo como Spider Generator ou coisa assim, isso só vai fazer com que as pessoas pensem que ele tem relacionamento com Rails, o que não seria verdade :slight_smile:

Alex_Basto

bruno.braga:

Bom, a notícia é que o projeto “J2EE Spider” foi renomeado para “SPIDER on Rails”. Isso está acontecendo para alinhamento do projeto com mudanças que serão lançadas em 2010.

Basicamente o projeto vai expandir e irá suportar outras tecnologias como Django e PHP além é claro de Java.

A URL http://www.j2eespider.org continuará existindo, mas redirecionará para http://www.spideronrails.org

Feliz Natal a todos!

baseado em: http://www.spideronrails.org/cnf/pages/viewpage.action?pageId=5111918

Gostei das ferramentas !!!

L

Eu ia falar exatamente isso.

Alias, quando vi o título do tópico achei que vc tinha refatorado a ferramenta para funcionar com Ruby On Rails.

Spider Generator ficaria melhor para o intuito desse projeto. Não vejo a necessidade de confundir a comunidade usando Rails só pra buscar mais adeptos.

davidbuzatto

Concordo plenamente. Na hora que vi o chamado da notícia pensei que era algo relacionado ao Rails.
[]´s

M

Acho que teve uma jogada de marketing aí, aproveitando a força do nome Rails hoje em dia.

Lembrei daquelas fábricas de software ‘ágeis’.

bgbraga

Vai funcionar com Ruby on Rails também similar ao que está sendo feito com Django. Mas não na versão 1.0 que deve sair no primeiro quartil de 2010.

Então uma parte do projeto foi “refatorado” sim, mas para funcionar com qualquer coisa =)

O que foi pensado é que o objetivo dos projetos é o mesmo ou muito parecidos. Porém implementados de uma forma diferente.
Enquanto Ruby é um framework web, o Spider é uma ferramenta. Mas o resultado final é ganhar produtividade, configurar o projeto sem muito trabalho, criar os scaffolds, etc… Então o nome parecido foi proposital nesse aspecto. Mas como havia adiantado o objetivo não é competir, o objetivo é agregar idéias e implementações diferentes a mesma solução…, tanto que uma hora o SPIDER pode ser uma ferramenta para o Ruby on Rails basta sobrar um tempinho e criar um template.

Olhando só em função do nome é algo como “Coca Cola” e “Pepsi Cola” (apesar de que esses são concorrentes).

O proprio Grails é um acronimo de Groovy on Rails.

Então em questão de foco do projeto, objetivo, marketing, SPIDER on Rails foi o melhor nome que encontramos.

Acho que no começo pode parecer um pouco estranho (questão de costume), mas seria melhor do que fazer como o Grails e colocar SRails (super rails? kk).

bgbraga

A versão 1.0 só vai ser lançada em 2010 como comentei.

Mas quem quiser brincar com a versão de build atual, gravei um vídeo de 2 minutos mostrando como instalar:

http://www.spideronrails.org/cnf/display/PT/How+To

O template que está mais funcional é o de JSF (mas na hora de configurar OpenID e HTTPs ainda :P).

Alex_Basto

bruno.braga:
A versão 1.0 só vai ser lançada em 2010 como comentei.

Mas quem quiser brincar com a versão de build atual, gravei um vídeo de 2 minutos mostrando como instalar:

http://www.spideronrails.org/cnf/display/PT/How+To

O template que está mais funcional é o de JSF (mas na hora de configurar OpenID e HTTPs ainda :P).

Posso aliar as funcionalidades do VRaptor 3 ao J2EE Spider, como situações usando a API Restfulie para contexto de URI ?

Mauricio_Linhares

Não é mais, o pessoal do rails “pediu educadamente” pra que eles não chamassem mais assim e ficou apenas “grails” mesmo.

bgbraga

Não entendi 100% da pergunta, mas sim você pode criar um template do VRaptor 3 para a ferramenta e economizar trabalho em novos projetos.

bgbraga

Sobre o nome, não sei. Não estou vendo tantos problemas.
Por enquanto vai ficar esse mesmo mas vou pensar se surgirem novos argumentos.

Até porque existe DB2 on Rails, RadRails, JRails e outros… a maioria tem algo a ver com Ruby, mas o SPIDER também tem em teoria e vai ter na prática.

Alex_Basto

Não entendi 100% da pergunta, mas sim você pode criar um template do VRaptor 3 para a ferramenta e economizar trabalho em novos projetos.

hummmm !!!

O VRaptor 3 é um framework controller e agora tem a novidade para usar conceitos Rest, ou melhor usando um modelo Restfulie, no que lhe perguntei é se posso ter uma solução acoplada as funcionalidades do J2EE Spider, já que nesse quesito não fora observado em sua solução.

Alex_Basto

bruno.braga:
A versão 1.0 só vai ser lançada em 2010 como comentei.

Mas quem quiser brincar com a versão de build atual, gravei um vídeo de 2 minutos mostrando como instalar:

http://www.spideronrails.org/cnf/display/PT/How+To

O template que está mais funcional é o de JSF (mas na hora de configurar OpenID e HTTPs ainda :P).

Vi o video, ficou bem interessante !!! , uma iniciativa legal pra fazer a pessoa entender rapido as reais mudanças da aplicação, por curiosidade a voz como você fez, achei que ficou perfeito junto com a explicação do video !!! :thumbup:

bgbraga

Alex Basto:

Vi o video, ficou bem interessante !!! , uma iniciativa legal pra fazer a pessoa entender rapido as reais mudanças da aplicação, por curiosidade a voz como você fez, achei que ficou perfeito junto com a explicação do video !!! :thumbup:

Sim… :slight_smile: A página de How To foi criada justamente para isso. Vou colocar vários vídeos pequenos sobre vários assuntos e novidades. Mas vou deixar para gravar a maior parte dos vídeos mais para frente quando estiver fechando a versão. Mas todos vão ser nesse estilo.
O vídeo foi criado com Adobe Captivate 4, que tem esse recurso de transformar texto em voz. Da um certo trabalho, mas ficou bacana mesmo.

Sobre o VRaptor / Rest funcionaria sim. Sem problemas.

Thiago_Senna

Olá,

já testei algumas vezes o Spider. Não me adaptei, no entanto a idéia é bastante valida! Sou bastante solidário a geração de código e espero que esta área continue ganhando adeptos.

Mas enfim, tenho algumas sugestões e opiniões (algumas já faladas neste tópico)

:arrow: Também não achei o nome Spider On Rails um bom nome. Um nome como Spider Generator ou Spider Scaffold seria muito mais bem vindo!

:arrow: Até onde me lembro, eu populo varias telinhas com informacoes para que o spider possa gerar código. Aqui vai a sugestão: já pensou se não seria interessante eu popular essas informacoes textualmente, como se fosse uma DSL?

:arrow: [Sugestão Viagem] O Spider poderia talvez se integrar com o TextUML. Se houver outra ferramenta mais interessante, pq não?

As sugestões ficaram um pouco vagas, mas espero ter contribuído de alguma forma :slight_smile:

Abraço,
Thiago

Alex_Basto

Faça uma parceiria com a Caelum e pede pra que a mesma liberar um plugin do Vraptor3 (Open Source) assim a ideia iria ganhar um reforço consideravel.

bgbraga

Ei Thiago,

Bom, vamos por partes:

Sobre o TextUML eu não conheço. Mas se a sugestão é colocar annotações nas classes para gerar diamagras UML também, isso pode ser feito de forma muito fácil (apesar de que eu não sei qual o valor desses diagramas para CRUDs).
Agora se a sugestão é gerar código a partir de diagramas (ao estilo MDD), isso não está nos planos porque muda totalmente o conceito / foco da ferramenta. Neste caso é melhor utilizar alguma ferramenta MDD que ja tem pronta.
Segue um comparativo entre a geração de código do SPIDER e MDD:
spideronrails.org/cnf/display/docPT/Comparativo

SPIDER versus MDD
Algumas ferramentas de geração de código são Model-Driven Development (MDD) e o SPIDER possui outro conceito. Vamos tentar explicar as diferenças:

No SPIDER você não precisa criar diagramas e não tem dependência com a ferramenta se quiser alterar o código. Nós suportamos você a criar o código do seu projeto e após criar os arquivos eles tem como único dono o próprio desenvolvedor. O SPIDER não precisa manter qualquer sincronismo regular com o código. Você pode continuar o seu projeto manualmente, após algumas semanas pode usar o SPIDER novamente, para novos Use Case.
o SPIDER não possui dependência entre o código e a ferramenta, os dois são completamente independentes. Se na metade do projeto você decidir não usar mais o SPIDER, ok. Você pode fazer isso.

Algumas outras ferramentas parecidas tem alguns passos manuais como: muitos “comandos maven”, ou entrada de dados usando somente comandos (command line). A abstração do SPIDER é mais elevada e você não precisa “conhecer ou aprender” nada para usar a ferramenta… é muito mais fácil e permite mais features por exemplo: escolher layout (skin) visualmente. Fazer isso em um prompt seria ruim.

As facilidades do SPIDER permitem que você crie projetos muito mais rápido do que com ferramentas MDD ou ferramentas baseadas em comandos.
A qualidade também será boa porque o código gerado é baseado em templates. Você pode usar o seu template com as customizações que quiser.

A documentação e diagrama UML são importantes, mas nós não precisamos delas para configurar o projeto ou criar CRUDs. O SPIDER é mais ágil e consegue criar código (como você quiser) sem usar o conceito de MDD, então você economiza tempo.
Na nossa opinião MDD é importante (por exemplo) para modelar um sistema e criá-lo em várias tecnologias diferentes. Se o seu sistema terá somente uma tecnologia (JEE), MDD não é necessário ou não agrega muitas vantagens. Por isso o SPIDER não é uma ferramenta MDD.

Então o projeto tem um objetivo muito bem definido, e (felizmente ou infelizmente) MDD ou DSL não fazem parte dele. Essas tecnologias são bacanas para alguns casos especificos, mas sinceramente não sei se precisa de tudo isso para configurar um projeto e criar CRUDs. Veja bons exemplos no django e ruby, tudo é feito da maneira mais simples e rápida possível. No SPIDER também sempre foi com esse objetivo, só que tentando ser mais fácil ainda (visualmente), integrado a IDE e sem ter que aprender nenhum comando.

Se está procurando por MDD e DSL, realmente não vai se adaptar (mas não estou dizendo que essas tecnologias são ruins, só que o objetivo é outro).

Abçs,

Alex_Basto

Quando você fala em gerar código é algo similar ao Xdoclet, poderia ter código scala gerado também ???

Mauricio_Linhares

Bem, no Django eu realmente não sei, mas em Rails o pessoal está caminhando cada vez mais pra DSLs até mesmo nos geradores, é só ver como funcionam os novos esqueletos de geradores de aplicação do Rails, o novo Bundler de gems e vários plugins. O rails em si já funciona a base de várias DSLs, como as migrations, o router, as validações do active-record.

bgbraga

Opa Mauricio,

Usar DSL internamente nos geradores ou ate gerar um projeto que possua DSLs, ok.
O que eu quis dizer é só que eu não sei se o usuário final precisa escrever uma DSL para dizer a ferramenta o que ela deve fazer. A ideia é descomplicar ao máximo a vida do desenvolvedor para que ele se preocupe com o que realmente importa que são as regras de negocio, arquitetura e etc.

Eu tenho muita preocupação em não tirar o foco do que realmente importa em um projeto (regras de negocio e etc). Então eu quero evitar que as pessoas escrevam códigos, comandos ou modelos para gerar algo descartavel (CRUDs). Esse é o objetivo desse projeto. Mas enfim, concordo que podem existir outras soluções :slight_smile:

Vamos ver como as coisas caminham com o tempo. Atualmente a preocupação é essa.

Alex_Basto

bruno.braga:
Opa Mauricio,

Usar DSL internamente nos geradores ou ate gerar um projeto que possua DSLs, ok.
O que eu quis dizer é só que eu não sei se o usuário final precisa escrever uma DSL para dizer a ferramenta o que ela deve fazer. A ideia é descomplicar ao máximo a vida do desenvolvedor para que ele se preocupe com o que realmente importa que são as regras de negocio, arquitetura e etc.


Regras de negócios estão na DSL.


Eu tenho muita preocupação em não tirar o foco do que realmente importa em um projeto (regras de negocio e etc). Então eu quero evitar que as pessoas escrevam códigos, comandos ou modelos para gerar algo descartavel (CRUDs). Esse é o objetivo desse projeto. Mas enfim, concordo que podem existir outras soluções :slight_smile:
Vamos ver como as coisas caminham com o tempo. Atualmente a preocupação é essa.

Acho que você esta usando um modelo antigo e não entende o que é percebido hoje, algo como Drools usa DSL para implementar regras de negocios.

Thiago_Senna

bruno.braga:
Opa Mauricio,

Usar DSL internamente nos geradores ou ate gerar um projeto que possua DSLs, ok.
O que eu quis dizer é só que eu não sei se o usuário final precisa escrever uma DSL para dizer a ferramenta o que ela deve fazer. A ideia é descomplicar ao máximo a vida do desenvolvedor para que ele se preocupe com o que realmente importa que são as regras de negocio, arquitetura e etc.

então… eu dei a sugestão da DSL pq eu acho wizards mais complicado. Você poderia manter ambos - os wizards e a DSL. Os wizards por exemplo, poderiam gerar a DSL. Se o desenvolvedor quiser, ele que opte por não usar os wizards e atuar direto na DSL.

Eu sugeri que desse uma olhada no TextUML não é pelo fato de que me interesso por MDD. É que no TextUML já existe uma DSL que representa a UML e talvez valesse a pena reaproveitar ao invés de criar do zero. Valeria muito a pena manter uma DSL onde à partir dela você gera todo o Scaffold da aplicação. Como o seu público alvo são programadores editar as configurações em uma DSL pode ser mais interessante do que editar wizards, é minha sincera opinião :wink:

bruno.braga:
Eu tenho muita preocupação em não tirar o foco do que realmente importa em um projeto (regras de negocio e etc). Então eu quero evitar que as pessoas escrevam códigos, comandos ou modelos para gerar algo descartavel (CRUDs). Esse é o objetivo desse projeto. Mas enfim, concordo que podem existir outras soluções :slight_smile:

Vamos ver como as coisas caminham com o tempo. Atualmente a preocupação é essa.

Bom, também acho que está fora de foco o Spider conter regra de negócio. Até onde entendi o foco é gerar a estrutura da aplicação. Ou melhor ainda, dar a opção do programador gerar o que quiser e como quiser :smiley: Mas a estrutura do modelo acho que não tem muito como o Spider evitar, ou tem?

Por exemplo, algo q eu senti falta em alguns projetos por aí é a opção de você gerar código para multi-projetos. Se tenho por exemplo um projeto usando maven com dois subprojetos, como faço pra gerar alguns artefatos no projeto A e outros no projeto B?

B

Prevejo uma ameaça de processo por infração de marca vindo do DHH.

Alex_Basto

Não chegaria a tanto :wink:

bgbraga

Não Alex, acho que vc não entendeu. A sugestão era para escrever a DSL em vez de usar os wizards. Não estamos falando de regras de negocio. O assunto regra de negocio está fora do escopo da ferramenta. As regras tem que ser escritas pelos desenvolvedores usando o que eles quiserem - DSL, codigo java puro, patterns, etc…

bgbraga

Thiago Senna:
então… eu dei a sugestão da DSL pq eu acho wizards mais complicado. Você poderia manter ambos - os wizards e a DSL. Os wizards por exemplo, poderiam gerar a DSL. Se o desenvolvedor quiser, ele que opte por não usar os wizards e atuar direto na DSL.

Eu sugeri que desse uma olhada no TextUML não é pelo fato de que me interesso por MDD. É que no TextUML já existe uma DSL que representa a UML e talvez valesse a pena reaproveitar ao invés de criar do zero. Valeria muito a pena manter uma DSL onde à partir dela você gera todo o Scaffold da aplicação. Como o seu público alvo são programadores editar as configurações em uma DSL pode ser mais interessante do que editar wizards, é minha sincera opinião :wink:

Ok Thiago. Agora as sugestões / ideias estão começando a tomar forma (não seria MDD, usar o DSL como opção ao wizards, etc), apesar de que eu acho os wizards bem simples e da para clonar as configs de um projeto para o outro.
Vou fazer o seguinte: vou dar uma olha no TextUML e depois a gente conversa para entender melhor o q está sugerindo e ver se é possível de implementar. Se não for atrapalhar nada e só for agregar, tranquilo.

Thiago Senna:

Por exemplo, algo q eu senti falta em alguns projetos por aí é a opção de você gerar código para multi-projetos. Se tenho por exemplo um projeto usando maven com dois subprojetos, como faço pra gerar alguns artefatos no projeto A e outros no projeto B?

A geração do SPIDER e incremental e baseada em assuntos (divididos em abas no wizard).
Vc pode gerar o conteúdo de uma aba em um projeto (ex: layout) e o conteudo de outra em outro projeto (ex: codigo java).
É isso que quer?

Thiago_Senna

bruno.braga:
Ok Thiago. Agora as sugestões / ideias estão começando a tomar forma (não seria MDD, usar o DSL como opção ao wizards, etc), apesar de que eu acho os wizards bem simples e da para clonar as configs de um projeto para o outro.
Vou fazer o seguinte: vou dar uma olha no TextUML e depois a gente conversa para entender melhor o q está sugerindo e ver se é possível de implementar. Se não for atrapalhar nada e só for agregar, tranquilo.

Legal :slight_smile:

O TextUML acho que seria legal para que fosse possível escrever a estrutura do modelo (no caso do java, as entidades). Mas há opções ainda - o pacote “Modelling Package” do eclipse tem um bom suporte para DSL. Dê uma procurada por XText e você vai ver que criar as DSL’s talvez até seja tranquilo. Mas não manjo muito de desenvolvimento dentro da plataforma eclipse para saber o quão complicado pode ser. Com ctz podemos sim trocar mais idéias sobre este assunto quando quiser :wink:

bruno.braga:
A geração do SPIDER e incremental e baseada em assuntos (divididos em abas no wizard).
Vc pode gerar o conteúdo de uma aba em um projeto (ex: layout) e o conteudo de outra em outro projeto (ex: codigo java).
É isso que quer?

Vou tentar dar um exemplo - dado que criei no Spider um modelo que represente uma classe do tipo Pessoa e com um atributo nome do tipo String, eu gostaria de gerar o seguinte:

-MeuProjeto
---- core
-------- src/main/java/Pessoa.java
(…)
---- web
-------- src/main/java/PessoaController.java
-------- src/main/webapp/pessoa/list.jsp
(…)
---- infra
-------- src/main/java/PessoaDAO.java

É mais ou menos esta a idéia - seria legal gerar e ter a opção de que a geração jogasse o código gerado dentro do projeto certo. Muitos geradores de código acabam gerando código sempre dentro de apenas um projeto. Ter a opção de selecionar quais artefatos serão gerados em quais ‘sub-projetos’ seria bem legal.

Obs: Bruno, qualquer hora vou separar um tempo para explorar o Spider com mais calma, espero, rsrs. Fazendo isto tento trazer sugestões mais claras. Acabei dando essas sugestões pq são as primeiras coisas que me vieram a cabeça e já me fizeram falta.

bgbraga

Opa,

Então, eu estava dando uma olhada no TextUML e acabei achando o xtext do eclipse antes de ler o forum. O xtext pode ajudar a criar uma DSL para isso. O textUML ja é algo pronto para criar modelos UML. N entendi ainda onde ele pode ajudar, mas depois a gente conversa.

Sobre o exemplo que deu dos artefatos, o que é um projeto no eclipse? “Meu Projeto” ou “core”, “web”, “infra”?

Thiago_Senna

bruno.braga:
Opa,

Então, eu estava dando uma olhada no TextUML e acabei achando o xtext do eclipse antes de ler o forum. O xtext pode ajudar a criar uma DSL para isso. O textUML ja é algo pronto para criar modelos UML. N entendi ainda onde ele pode ajudar, mas depois a gente conversa.

Sobre o exemplo que deu dos artefatos, o que é um projeto no eclipse? “Meu Projeto” ou “core”, “web”, “infra”?

XText pode mesmo ajudar muito. Sobre o TextUml já acho que precisariamos pensar com mais calma. Mas se você se familiarizar com XText ele já vai ser suficiente, tanto pra criar as DSL`s dos wizards e modelo.

No exemplo que dei, as pastas core, web e infra são cada um deles um projeto no eclipse.

bgbraga

Se o “Meu Projeto” for o projeto do eclipse e “core”, “web” e “infra” forem sub-pastas é mto facil gerar nessa estrutura.

Um jeito facil de conseguir isso e mantendo a separação que vc quer é criando o “Meu Projeto” como projeto do eclipse e dentro dele o SPIDER pode gerar o “core”, “web” e “infra” como sub-projetos (pastas com o arquivo .project). Depois que a estrutura tiver gerada vc pode dar close no “Meu Projeto” (que é o principal) e import project nos outros 3 pelo eclipse.

Editei para explicar melhor. Estou postando via mobile (android) e antes tinha mais confuso / escrito correndo :stuck_out_tongue:

Thiago_Senna

Opa, então blz! Pergunta respondida, valeu.

Scala

bruno.braga:
Se o “Meu Projeto” for o projeto do eclipse e “core”, “web” e “infra” forem sub-pastas é mto facil gerar nessa estrutura.

Um jeito facil de conseguir isso e mantendo a separação que vc quer é criando o “Meu Projeto” como projeto do eclipse e dentro dele o SPIDER pode gerar o “core”, “web” e “infra” como sub-projetos (pastas com o arquivo .project). Depois que a estrutura tiver gerada vc pode dar close no “Meu Projeto” (que é o principal) e import project nos outros 3 pelo eclipse.

Editei para explicar melhor. Estou postando via mobile (android) e antes tinha mais confuso / escrito correndo :P

Bom, vou testar melhor, o Spider on Rails :wink:

Criado 25 de dezembro de 2009
Ultima resposta 4 de jan. de 2010
Respostas 32
Participantes 9