Transcript
Page 1: Novidades Groovy 2.0

Novidades doGroovy 2.0

por Ismael Soares@ismaelsoaresz

sábado, 8 de setembro de 12

Page 2: Novidades Groovy 2.0

Referência

Esta é um resumo

escrito porGuillaume Laforge

publicado na

sábado, 8 de setembro de 12

Page 3: Novidades Groovy 2.0

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

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

=

sábado, 8 de setembro de 12

Page 6: Novidades Groovy 2.0

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

Melhorias

sábado, 8 de setembro de 12

Page 8: Novidades Groovy 2.0

@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

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

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

Conversão comum de tipos

Inferência de tipos

sábado, 8 de setembro de 12

Page 12: Novidades Groovy 2.0

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

Mais um pouco de inferência de tipos...

sábado, 8 de setembro de 12

Page 14: Novidades Groovy 2.0

Lowest Upper Bound(Mínimo Limite superior)

Que loco!

sábado, 8 de setembro de 12

Page 15: Novidades Groovy 2.0

Fluxo de Tipagem

sábado, 8 de setembro de 12

Page 16: Novidades Groovy 2.0

Fluxo de Tipagem

Inteiro não tem UpperCase Zé!

sábado, 8 de setembro de 12

Page 17: Novidades Groovy 2.0

Um pouco mais de fluxo de Tipagem...

sábado, 8 de setembro de 12

Page 18: Novidades Groovy 2.0

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

@CompileStatic

sábado, 8 de setembro de 12

Page 20: Novidades Groovy 2.0

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

JDK 7

sábado, 8 de setembro de 12

Page 22: Novidades Groovy 2.0

Literais binárias

sábado, 8 de setembro de 12

Page 23: Novidades Groovy 2.0

Uso underline em números

sábado, 8 de setembro de 12

Page 24: Novidades Groovy 2.0

Múltiplos blocos de catch

sábado, 8 de setembro de 12

Page 25: Novidades Groovy 2.0

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

Groovy Modular

sábado, 8 de setembro de 12

Page 27: Novidades Groovy 2.0

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

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

Que loco!

sábado, 8 de setembro de 12

Page 30: Novidades Groovy 2.0

Decorando com métodos estáticos

sábado, 8 de setembro de 12

Page 31: Novidades Groovy 2.0

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

?sábado, 8 de setembro de 12

Page 33: Novidades Groovy 2.0

Obrigado

sábado, 8 de setembro de 12


Top Related