novidades groovy 2.0
DESCRIPTION
Apresentação que fiz para a equipe Bluesoft sobre as novidades do Grovvy 2.0TRANSCRIPT
![Page 1: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/1.jpg)
Novidades doGroovy 2.0
por Ismael Soares@ismaelsoaresz
sábado, 8 de setembro de 12
![Page 2: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/2.jpg)
Referência
Esta é um resumo
escrito porGuillaume Laforge
publicado na
sábado, 8 de setembro de 12
![Page 3: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/3.jpg)
Funcionalidades Estáticas
Verificação estática de tipos
Compilação estática
sábado, 8 de setembro de 12
![Page 4: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/4.jpg)
Outras melhoriasrelacionadas a JDK 7
Melhorias de sintaxe
Suporte a instrução da JVM
sábado, 8 de setembro de 12
![Page 5: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/5.jpg)
=
sábado, 8 de setembro de 12
![Page 6: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/6.jpg)
Por que?
Java em linguagem dinâmica
Menos código repetitivo
Facilmente integrável ao Java
sábado, 8 de setembro de 12
![Page 7: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/7.jpg)
Melhorias
sábado, 8 de setembro de 12
![Page 8: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/8.jpg)
@TypeChecked-> Pode ser utilizado na classe ou em apenas alguns métodos específicos
-> Caso opte por utilizar na classe e queira colocar um método como exceção basta passar o parâmetro (SKIP)
-> O Groovy utiliza um mecanismos de transformação AST (Árvore de Sintaxe Abstrata)
sábado, 8 de setembro de 12
![Page 9: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/9.jpg)
Identificação deerros de validação
http://www.infoq.com/br/articles/new-groovy-20 (Guillaume Laforge)
sábado, 8 de setembro de 12
![Page 10: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/10.jpg)
Checagem de valores retornados
http://www.infoq.com/br/articles/new-groovy-20 (Guillaume Laforge)
sábado, 8 de setembro de 12
![Page 11: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/11.jpg)
Conversão comum de tipos
Inferência de tipos
sábado, 8 de setembro de 12
![Page 12: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/12.jpg)
Características dinâmica e métodos de tipagem
estática
Markup Builder é um criador de XML do Grovvy
sábado, 8 de setembro de 12
![Page 13: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/13.jpg)
Mais um pouco de inferência de tipos...
sábado, 8 de setembro de 12
![Page 14: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/14.jpg)
Lowest Upper Bound(Mínimo Limite superior)
Que loco!
sábado, 8 de setembro de 12
![Page 15: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/15.jpg)
Fluxo de Tipagem
sábado, 8 de setembro de 12
![Page 16: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/16.jpg)
Fluxo de Tipagem
Inteiro não tem UpperCase Zé!
sábado, 8 de setembro de 12
![Page 17: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/17.jpg)
Um pouco mais de fluxo de Tipagem...
sábado, 8 de setembro de 12
![Page 18: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/18.jpg)
Um pouco mais de fluxo de Tipagem...
Você alterou a Variável. Agora me
perdi!
sábado, 8 de setembro de 12
![Page 19: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/19.jpg)
@CompileStatic
sábado, 8 de setembro de 12
![Page 20: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/20.jpg)
Compilação estática
Melhora na performance
Bytecode igual ao gerado no javac
sábado, 8 de setembro de 12
![Page 21: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/21.jpg)
JDK 7
sábado, 8 de setembro de 12
![Page 22: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/22.jpg)
Literais binárias
sábado, 8 de setembro de 12
![Page 23: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/23.jpg)
Uso underline em números
sábado, 8 de setembro de 12
![Page 24: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/24.jpg)
Múltiplos blocos de catch
sábado, 8 de setembro de 12
![Page 25: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/25.jpg)
Suporte a Invoke Dynamic
Nova instrução de bytecode
Auxiliar desenvolvimento de linguagens dinâmicas sobre JVM
Chamadas de métodos dinâmicas podem ser colocadas em cache
O Groovy tem implementações próprias otimizadas para acelerar a invocação dinâmica
sábado, 8 de setembro de 12
![Page 26: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/26.jpg)
Groovy Modular
sábado, 8 de setembro de 12
![Page 27: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/27.jpg)
O Groovy não é apenas uma linguagem!
Ant: para scripts do Ant, automatizando tarefas administrativas;• BSF: para integração do Groovy em aplicações Java com o velho Apache Bean
Scripting Framework;• Console: módulo contendo o console do Groovy Swing;• GroovyDoc: para documentar suas classes Groovy e Java;• Groovysh: módulo correspondente ao terminal de linha de comando Groovysh;• JMX: para expor e consumir beans JMX;• JSON: para produzir e consumir informações no formato JSON;• JSR-223: para integrar o Groovy às aplicações Java através da API javax.scripting
do JDK 6 ou superior;• Servlet: para escrever e disponibilizar templates e scripts de servlets do Groovy;• SQL: para consultar bases relacionais;• Swing: para construção de interfaces gráficas usando o Swing;• Templates: para uso do mecanismo de templates;• Test: para suporte a testes, como o GroovyTestCase, mocking e mais;• TestNG: para escrever testes usando o TesteNG no Groovy;• XML: para produzir e consumir documentos em XML.
sábado, 8 de setembro de 12
![Page 28: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/28.jpg)
Módulos de extensão
Como o Groovy foi dividido em módulos menores, foi criado um mecanismo para que módulos possam contribuir com métodos de extensão. Dessa forma, esses módulos podem fornecer métodos de instância e métodos estáticos para outras classes, incluindo classes do JDK e de bibliotecas de terceiros.
sábado, 8 de setembro de 12
![Page 29: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/29.jpg)
Que loco!
sábado, 8 de setembro de 12
![Page 30: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/30.jpg)
Decorando com métodos estáticos
sábado, 8 de setembro de 12
![Page 31: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/31.jpg)
Configuração módulo de extensão
-> Criar arquivo no META-INF/services org.codehaus.groovy.runtime.ExtensionModule
sábado, 8 de setembro de 12
![Page 32: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/32.jpg)
?sábado, 8 de setembro de 12
![Page 33: Novidades Groovy 2.0](https://reader035.vdocuments.site/reader035/viewer/2022081508/55799ad3d8b42ae72b8b528a/html5/thumbnails/33.jpg)
Obrigado
sábado, 8 de setembro de 12