Grails: o que isso quer dizer?

Propaganda
Grails: o que isso quer dizer?
Gilliard Cordeiro
http://gilliard.eti.br
Sobre mim
• Formado em análise de sistemas pela
UFMS
• Trabalho há 5 anos com desenvolvimento
Web
• Minha principal área de atuação é P&D
• Instrutor SENAC/MS
• Um dos Coordenadores do JUGMS
Onde trabalho
• 20 anos de inovação e qualidade
A Empresa
Há 20 anos estabelecida em Campo Grande – MS conta
com 85 colaboradores diretos com experiência comprovada
em:
–
–
–
–
–
–
Desenvolvimento de sistemas
Fábrica de software
Comercialização de produtos
Assistência técnica
Suporte técnico
Treinamento e consultoria
Premiações da AZ
O selo Best Choice representa as melhores
soluções avaliadas no Best Choice do ano em
questão
Prêmio direcionado aos projetos
mais inovadores de TI na área
pública,
de acordo com o julgamento das
principais entidades do setor e o
reconhecimento do mercado e
da sociedade.
O Prêmio Excelência em Governo
Eletrônico visa incentivar o
desenvolvimento eficaz e
abrangente de iniciativas de
governo eletrônico nos diferentes
segmentos da administração
pública federal, estadual e
municipal
Casos de Sucesso
Recursos Humanos
•85 Funcionários
•86% nível Superior
•15 Profissionais Certificados (JAVA, DOMINO, DB2,
Windows)
•Gerente de Projetos
•Analista de Sistema
•Desenvolvedor
•Arquiteto de Software
•Administrador
•Curso de Inglês
•Aula de Dança de Salão
•Aniversariante do Mês
•Festa Junina
•Festa Final de Ano
•Happy Hour Mensal
•Plano de Saúde
•Vale Alimentação
A AZ e a Tecnologia
•Sistemas desenvolvidos em Java
•Arquitetura dividida em camadas
•Hibernate /JPA
•EJB3
•JSF
•JasperReports
•JFreeChart
•Workflow – Workflow Management Coalition – WfMC.
•Eclipse
•CVS - Concurrent Versions System
•TOMCAT
•JBOSS
•Sempre buscando usar o que há de novo
•Promovendo capacitação para os colaboradores
Grails: o que isso que dizer?
• Quer dizer muito mais que “Groovy on
Rails”
• Grails evidencia algumas coisas sobre
Java:
– Tendência de absorver soluções
comprovadamente boas pelo mercado
– Diferenciação entre plataforma e linguagem
Java
O Java de algum tempo atrás
• JCP Muito criticado por sua lentidão em
acompanhar tendências e por “inventar
moda”
– Um exemplo clássico é a JDO
• Especificações só se for obrigado
– Ninguém queria saber de EJB antes da versão
3 a menos que fosse uma obrigação
O Java na atualidade
• Java tem se baseado muito mais em casos
de sucesso
– JPA (Hibernate)
– WebBeans (Seam)
– Grails (RoR) *não é especificação
– EJB3 (Spring provou que podia ser mais
simples que os EJBs 2.x)
– JavaEE 5 e JavaEE 6: foco na produtividade
O que é Java?
• Parece uma pergunta óbvia mas a
resposta pode não ser
• Java pode ser duas coisas: linguagem ou
plataforma
• A linguagem é aquela que escrevemos na
nossa IDE
• A plataforma é muito mais do que isso...
A plataforma Java
• O sucesso do Java, e o fato de até hoje
ele estar onde está não é pela linguagem
parecida com C
• Linguagens vem e vão, mas uma
plataforma como o Java vai durar por
muito tempo
A plataforma Java
• O grande diferencial do Java é sua JVM
• Java possui também o maior
“ecossistema” de software da atualidade
• Dá segurança para altos investimentos em
ambiente corporativo por evoluir
respeitando o passado
• Executa diversas linguagens
Linguagens sobre a JVM
• Originalmente a JVM era uma VM para
uma linguagem: Java
• Hoje temos diversas linguagens na JVM
– Groovy
– Ruby
– Python
– Scala
Investimento em outras
linguagens
• Da Vinci Machine: Um projeto que mostra
que rodar outras linguagens na JVM não é
brincadeira
• Instruções de bytecode feitas para serem
usadas por outras linguagens, em especial
as dinâmicas
E o Grails?
• O Grails, ou Groovy on Rails é um
framework fortemente baseado no Ruby
on Rails
• O termo “on rails” significa “nos trilhos”, e
prove uma stack inteira para
desenvolvimento
Composição do Grails
Grails possui diversos plugins
• No site do Grails tem uma lista com
diversos plugins para:
– Ajax, RichApplication
• DWR, GWT, YUI, JQuery, Flex, OpenLaszlo...
– Performance
– Outros frameworks
– etc
Grails é Java
• Como Grails é Java, e no final temos um
WAR padrão, tudo que usamos no Java
podemos usar nele:
– Lucene, cache de 2º nível no Hibernate
(inclusive distribuído)
– JSF, Seam, Wicket (e qualquer outro
framework Java)
– JBPM, JMS, Drools, etc...
Comparação com RoR
• Os dois frameworks provêem uma stack
completa de desenvolvimento
• O Grails, influenciado pelo jeito de
desenvolver com Hibernate é mais
centrado no modelo, enquanto RoR
parece mais centrado em banco de dados
Comparação com RoR
• Grails utiliza a linguagem Groovy,
enquanto RoR é Ruby
– Para quem veio da escola C, C++ e Java, a
sintaxe do Groovy vai parecer mais familiar
• Grails tira proveito de todo o
“ecossistema” Java; escalável (*JRuby)
• Grails no entanto é bem mais jovem
Grails além dos CRUD's
• O que fazemos com Java, podemos fazer
também com Grails
• Na sua aplicação real de hoje,
provavelmente não tem só CRUD's
• Grails já vem com suporte à injeção de
dependência e controle transacional de
services do Spring
Groovy
• Linguagem de tipagem dinâmica
totalmente baseada no Java
• Facilidade de meta-programação
• Integração transparente com Java
• Implementa diversas facilidades
• Exemplo
Mão na massa
• Sistema de controle de pendências
Crescimento do Grails
• No último ano os downloads do Grails passaram de 7.000
para 70.000 por mês
• No dia 11/11/2008, a SpringSource adquiriu a G2One, que é a
empresa que mantém o Groovy e o Grails, e além de investir
no desenvolvimento dessas tecnologias, oferecerá também
suporte pago à essas ferramentas, assim como a JBoss já faz
com seus produtos
• Com isso espera-se que o meio corporativo, e até a
comunidade, perceba que essas são tecnologias sérias e
confiáveis, fazendo o Grails crescer e melhorar cada vez mais
Recapitulando
• Diferença entre plataforma e linguagem
Java
• O que é Groovy
• A idéia do Grails vem do Ruby on Rails?
• Dá para usar grails em um sistema de
verdade?
• Grails: o que isso quer dizer?
Perguntas?
• Você pode saber mais também aqui
– http://groups.google.com/group/jug-ms
– http://jugms.com.br
Obrigado
Gilliard Cordeiro
http://gilliard.eti.br
[email protected]
Referências
• Alguns links para consulta posterior
– http://grails.org/
– http://groovy.codehaus.org/
– http://www.springframework.org/
– http://www.hibernate.org/
– http://www.opensymphony.com/sitemesh/
Download