Novidades Groovy 2.0

Post on 11-Jun-2015

1.482 views 0 download

description

Apresentação que fiz para a equipe Bluesoft sobre as novidades do Grovvy 2.0

Transcript of Novidades Groovy 2.0

Novidades doGroovy 2.0

por Ismael Soares@ismaelsoaresz

sábado, 8 de setembro de 12

Referência

Esta é um resumo

escrito porGuillaume Laforge

publicado na

sábado, 8 de setembro de 12

Funcionalidades Estáticas

Verificação estática de tipos

Compilação estática

sábado, 8 de setembro de 12

Outras melhoriasrelacionadas a JDK 7

Melhorias de sintaxe

Suporte a instrução da JVM

sábado, 8 de setembro de 12

=

sábado, 8 de setembro de 12

Por que?

Java em linguagem dinâmica

Menos código repetitivo

Facilmente integrável ao Java

sábado, 8 de setembro de 12

Melhorias

sábado, 8 de setembro de 12

@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

Identificação deerros de validação

http://www.infoq.com/br/articles/new-groovy-20 (Guillaume Laforge)

sábado, 8 de setembro de 12

Checagem de valores retornados

http://www.infoq.com/br/articles/new-groovy-20 (Guillaume Laforge)

sábado, 8 de setembro de 12

Conversão comum de tipos

Inferência de tipos

sábado, 8 de setembro de 12

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

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

sábado, 8 de setembro de 12

Lowest Upper Bound(Mínimo Limite superior)

Que loco!

sábado, 8 de setembro de 12

Fluxo de Tipagem

sábado, 8 de setembro de 12

Fluxo de Tipagem

Inteiro não tem UpperCase Zé!

sábado, 8 de setembro de 12

Um pouco mais de fluxo de Tipagem...

sábado, 8 de setembro de 12

Um pouco mais de fluxo de Tipagem...

Você alterou a Variável. Agora me

perdi!

sábado, 8 de setembro de 12

@CompileStatic

sábado, 8 de setembro de 12

Compilação estática

Melhora na performance

Bytecode igual ao gerado no javac

sábado, 8 de setembro de 12

JDK 7

sábado, 8 de setembro de 12

Literais binárias

sábado, 8 de setembro de 12

Uso underline em números

sábado, 8 de setembro de 12

Múltiplos blocos de catch

sábado, 8 de setembro de 12

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

Groovy Modular

sábado, 8 de setembro de 12

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

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

Que loco!

sábado, 8 de setembro de 12

Decorando com métodos estáticos

sábado, 8 de setembro de 12

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

?sábado, 8 de setembro de 12

Obrigado

sábado, 8 de setembro de 12