Pular para o conteúdo principal

Aventuras com SpringRoo no mundo real

Há alguns dias entregamos a primeira fase de um Projeto desenvolvido utilizando o Spring Roo. Nesse post vou compartilhar essa experiência.


O Projeto
Primeiro detalhe, só pra variar, o tempo bem escasso. A idéia era disponibilizar o sistema funcionando em 2 semanas. As funcionalidades eram bem simples, alguns CRUDS, um deles um pouco maior  com alguns relacionamentos e validações mais chatas, várias opções de pesquisa/filtros e relatórios.

A equipe
Nesse projeto era bem pequena, 2 desenvolvedores.

Porquê o Spring Roo?
Meu primeiro contato com o Roo foi no TDC2009, na palestra do Rod Johnson e logo depois com o Renato Bellia no Casual Class sobre Spring Plataform.

Finalmente chegamos a tão desejada "alta-produtividade" no desenvolvimento Java corporativo! Será? Penso que produtividade vai bem além de uma ferramenta e/ou metodologia, são vários os fatores que influenciam, mas não quero falar sobre isso aqui.

Imparcial e sem falsas ilusões fiquei bem curioso pela simplicidade com que o Roo trata as tarefas burocráticas na infra-estrutura de um projeto Java, que sempre foi alvo de muitas críticas. Outro ponto que chamou minha atenção foi a possibilidade de, caso fosse conveniente, desligar o Roo e continuar trabalhando e evoluindo o sistema.

Além das funcionalidades da ferramenta, o fator decisivo na escolha do Spring Roo foi a arquitetura/estrutura gerada por ele com: Spring MVC, JPA/Hibernate, Spring Security. Tecnologias aderente a linha adotada em outros projetos na empresa. O Roo entrou em cena com o papel de propulsor.


Desenvolvimento
No início do projeto a versão disponível do Spring Roo era 1.1.0.M1. De lá pra cá várias melhorias foram feitas até a 1.1.0 GA. Naquele momento o plugin do GWT do Roo estava bem imaturo, ainda em processo de desenvolvimento e, então, pra evitar o risco não usamos. A estratégia na camada view foi seguir uma linha mais clássica Java para Web, desenvolvimento com JSP e Custom Tags do Spring Web, e claro com Spring MVC 3.0.

Ainda sobre a camada view, outra feature que ainda não existia no Roo era o suporte nativo a JSON para REST, adotado na atual versão. Resolvemos o JSON sem stress, usando algumas funcionalidades do Spring MVC 3. O Ajax no front-end foi resolvido com framework JavaScript Dojo, adotado pelos componentes do Spring Web para algumas perfumárias. O Dojo deixou a desejar, enfrentamos alguns problemas de compatibilidade do JS com IE, por isso em alguns pontos usamos o JQuery, que sem dúvida alguma é o meu prefererido!

A curva de aprendizado do Roo é bem curta, em poucas horas definimos todo modelo de entidades, as Controllers, pesquisas e o esqueleto das Views, tudo pelo shell. Usamos o STS tornando a integração do shell com IDE bem transparente, além de contar com todas peculiaridades para os produtos Spring.


Conclusão
O principal objetivo: entregar o projeto atendendo a expectativa do cliente no prazo esperado, foi alcançado!

O Roo realmente acelera o desenvolvimento, resolve muitas picuinhas chatas e o melhor de tudo: gera código bom, fácil de compreender e avançar, com todo aparato de testes, uma arquitetura enxuta e consistente. Conhecer um pouco sobre AOP, ou melhor AspectJ, pode facilita a compreensão do que está rolando por trás da cortina.

Dois pontos que merecem uma maior atenção seriam  o cuidado com relacionamentos mais avançados entre entidades (Scaffold) e a organização das buscas. Vou descrever mais detalhes disso em outro post.

Gostei bastante do Roo, pretendendo continuar usando em projetos com características diferentes, maiores e mais complexos.


Documentação do Roo.
Posts sobre o Roo aqui no Globalcoders.
Um pouco mais da minha experiência com o Roo.


[]s
Eder Magalhães
www.yaw.com.br
twitter.com/youandwe
twitter.com/edermag

Comentários

Digão disse…
Otimo post! brinquei um pouco com SpringRoo tempos atrás, para CRUDs ele funciona muito bem! empaquei um pouco com relacionamento nesses CRUDs, já q vai detalhar num proximo post..estarei no aguardo sobre ele! valew!
Pedro Cavaléro disse…
Muito interessante ver uma utilização do Roo no mundo real. Vc fez o q eu pensei tb, fazer a infra com o Roo e a parte toda de view na mão mesmo. Ainda não acho q a view q ele gera seja usável em um projeto real, talvez uma pequena parte, não sei. Seria interessante que a springsource fizesse algum demo com a customização de projetos e não apenas da geração incial. Parabéns pelo post!

Postagens mais visitadas deste blog

O que é Lógica de programação?

Este é o segundo de uma série de posts voltados aos leitores do blog que estão dando início à carreira de desenvolvimento de software. O assunto de hoje é a lógica de programação. Para ler antes: Entendendo como funciona a programação de computadores: linguagens de programação, lógica, banco de dados A lógica de programação é um pré-requisito para quem quer se tornar um desenvolvedor de software, independente da linguagem de programação que se pretende utilizar. Mas o que é de fato a Lógica de Programação e como saber se eu tenho esse pré-requisito? A lógica de programação nada mais é do que a organização coerente das instruções do programa para que seu objetivo seja alcançado. Para criar essa organização, instruções simples do programa, como mudar o valor de uma variável ou desenhar uma imagem na tela do computador, são interconectadas a estruturas lógicas que guiam o fluxo da execução do programa. Isso é muito próximo ao que usamos em nosso cotidiano para realizar atividad...

TDC ONLINE: SUA PLATAFORMA DE PALESTRAS GRAVADAS DO TDC DISPONÍVEL

Além do conteúdo ao vivo transmitido online nas edições do TDC, agora você pode ter acesso à centenas de palestras gravadas, através da nossa nova plataforma de vídeos - o TDC Online, que reúne todas as Trilhas premium, Stadium e Salas dos Patrocinadores das edições anteriores de 2022, TDC Innovation e TDC Connections.  Para acessar, basta clicar na edição em que você participou ( TDC Innovation ou TDC Connections ); Fazer o mesmo login (com e-mail e senha) cadastrados na hora de adquirir ou resgatar o seu ingresso no TDC; E clicar na Trilha de sua opção, e de acordo com a modalidade do seu ingresso. Logo em seguida, você será direcionado para a seguinte página com a lista de todas as palestras por Trilha: Pronto! Agora você tem acesso à centenas de palestras gravadas da sua área de interesse, para assistir como e quando quiser! Caso tenha esquecido a senha, clique na opção "Esqueci a senha" , insira o e-mail que você realizou para o cadastro no evento, e aparecerá a op...

TDC BUSINESS, chega a São Paulo com novas trilhas de Inteligência Artificial e Inovação

Maior conferência de profissionais de tecnologia do Brasil abordará temas em alta no momento como, por exemplo, Inteligência Artificial, Segurança, Ciência de Dados e Inovação O TDC BUSINESS, a 17° edição do The Developer's Conference na cidade de São Paulo, que acontece entre os dias 19 e 21 de Setembro, reunirá profissionais e especialistas da área para troca de experiência, compartilhamento de conteúdos e networking. Com o tema central: “Tecnologia para negócios transformadores”, o evento será totalmente híbrido, ocorrendo presencialmente no espaço Pro Magno, e com transmissão simultânea e atividades de network pela internet. A expectativa é reunir mais de 14.000 pessoas, somando a participação presencial e online.   Segundo Yara Mascarenhas, Fundadora e Host do Evento, “nosso objetivo com o TDC é inspirar a colaboração entre os profissionais e empresas para construir uma nova realidade para o mercado de TI.  Vamos juntar tecnologia e negócios com as trilhas técnicas...

12 ESQUENTAS TDC ESPERANDO POR VOCÊ

O TDC nasceu do sonho de profissionais que valorizam o compartilhamento de conhecimento, experiências e oportunidades entre as comunidades de desenvolvedores.  Por isso, o crescimento do TDC nunca poderia ficar longe do crescimento das comunidades! Pensando nessa união, criamos um projeto quente: O ESQUENTA TDC ! Visando divulgar os meetups de comunidades que querem transformar e inspirar carreiras, foi co-criado este projeto lindo e cheio de apoio, onde o TDC abraça meetups de diversas comunidades espalhadas pelo Brasil e elas contribuem com a divulgação da edição regente.  O TDC Innovation vai rolar de 14 a 16 de JUNHO, mas até lá vão acontecer muitos encontros incríveis!  Fique por dentro das comunidades que vão participar, quais temas irão abordar e claro as datas e locais para você participar. 💥Esquentas TDC Innovation 2023: 24/05 - Esquenta TDC: Carreira e Desenvolvimento Presencial em Floripa das 19:00 as 21:30 com inscrição AQUI Comunidade: Google Developer...

JSON fácil em Java com GSon !

Ola pessoal ! O formato JSON ( J ava S cript O bject N otation) vem se consagrando cada vez mais na comunicação de dados, principalmente nos dispositivos móveis devido a esse formato ser mais leve que o XML e também mais legível. Uma prova disso são as inúmeras bibliotecas que existem para manipular esse formato, e no caso do Android, o suporte ao JSON é nativo. Mas apesar de ter esse suporte nativo, algumas operações devem ser feitas manualmente e o código acaba ficando um pouco verboso e repetitivo, já que para cada objeto que se deseja transmitir é necessário fazer um método que lê as propriedades do JSON e faz as devidas atribuições no seu objeto Java. Vamos supor o seguinte objeto sendo transmitido em JSON: {   user: {     id: 123456,     name: "Neto Marin",     username: "netomarin",     email: "netomarin@globalcode.com.br"   } } Se você fosse tratar um Webservice que envia esse JSON para o seu aplicativo Android...

JavaOne Brasil, dicas para submissão de palestras

Não quero parecer pretensiosa dando dicas para submissão de palestras para o JavaOne Brasil, mas sim repassar os tantos conselhos e sugestões recebidas pelos vetaranos do JavaOne: Bruno Souza e Leonardo Galvão que revisaram dezenas de submissões para o JavaOne e ajudaram a aprovar tantas palestras, e também misturar um pouco da minha experiência na seleção de palestras nos eventos realizados pela Globalcode e SouJava . 10 anos de JavaOne: http://www.globalcode.com.br/noticias/Globalcode10AnosNoJavaOne Os palestrantes ganham a entrada! A submissão pode ser feita em português! O passo mais importante para ser aprovado como palestrante no JavaOne é sem dúvida nenhuma submeter pelo menos uma palestra. Então, independente de qualquer coisa, participe, arrisque, divulgue.  Mas, se quiser aumentar as suas chances...   1) Leve a sério: peça para amigos fazerem uma leitura crítica do texto, e claro uma boa revisão ortográfica. 2) Submissão de várias palestras ou variações do ...