SlideShare a Scribd company logo
1 of 10
Download to read offline
shutterstock_3248515.jpg Groovy para Javeiros – Migração Painless WCJ IT – Soluções em TI http://www.sp.senac.br/imagens/x1.gif http://www.sp.senac.br/imagens/x1.gif Cuidamos dos valores que fazem sentido para o seu  negócio . http://wcj-it.com
O que é Groovy? ,[object Object]
Ruby / Phyton
Recursos ,[object Object]
Duck typing
Tipagem estática e dinâmica
Interoperabilidade com Java
Sintaxe flexível
Etc...
Por que Groovy? public   static   void  lerLinhaALinha(InputStream stream) { InputStreamReader reader =  null ; BufferedReader buffer =  null ; try  { reader =  new  InputStreamReader(stream); buffer =  new  BufferedReader(reader); String linha =  "" ; while  (linha !=  null ) {   linha = buffer.readLine(); if  (linha !=  null ) { //CODIGO DE NEGOCIO }   } }  catch  (FileNotFoundException e) { throw   new  RuntimeException(e); }  catch  (IOException e) { throw   new  RuntimeException(e); }  finally  { if  (reader !=  null ) { try  { reader.close(); }  catch  (IOException e) {   LOG .error( "erro carregando arquivo" , e); } } if  (buffer !=  null ) { try  { buffer.close(); }  catch  (IOException e) {   LOG .error( "erro carregando arquivo" , e); } } } } public   static   void   lerLinhaALinha (InputStream   is)   { is. eachLine ( "utf-8" ,   {   linha   -> //CODIGO DE NEGOCIO }); } JAVA Groovy

More Related Content

What's hot

T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)Carlos Santos
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fontethomasdacosta
 
Stored Procedures com PostgreSQL: porque usar.
Stored Procedures com PostgreSQL:  porque usar.Stored Procedures com PostgreSQL:  porque usar.
Stored Procedures com PostgreSQL: porque usar.Atmos Maciel
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003Henoc Freire
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE PoliglotaPhil Calçado
 
Programação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código FonteProgramação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código Fontethomasdacosta
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3Jose Berardo
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
Questao.2
Questao.2Questao.2
Questao.2Utyiama
 
Dicas e Truques TypeScript
Dicas e Truques TypeScriptDicas e Truques TypeScript
Dicas e Truques TypeScriptLoiane Groner
 
Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04profwtelles
 
Clean code como um código ruim pode influenciar a produtividade
Clean code como um código ruim pode influenciar a produtividadeClean code como um código ruim pode influenciar a produtividade
Clean code como um código ruim pode influenciar a produtividadeHigor Nucci
 
introdução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonintrodução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonwhanderley freitas
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07profwtelles
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Cristiano Rafael Steffens
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Bootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupBootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupElaine Naomi
 

What's hot (20)

T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)T08_T09_LM3: Estruturas de repetição (2013-2014)
T08_T09_LM3: Estruturas de repetição (2013-2014)
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
Stored Procedures com PostgreSQL: porque usar.
Stored Procedures com PostgreSQL:  porque usar.Stored Procedures com PostgreSQL:  porque usar.
Stored Procedures com PostgreSQL: porque usar.
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota
 
Programação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código FonteProgramação Estruturada 2 - Aula 04 - Código Fonte
Programação Estruturada 2 - Aula 04 - Código Fonte
 
O que há de novo no PHP 5.3
O que há de novo no PHP 5.3O que há de novo no PHP 5.3
O que há de novo no PHP 5.3
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
Testes em go
Testes em goTestes em go
Testes em go
 
Questao.2
Questao.2Questao.2
Questao.2
 
Dicas e Truques TypeScript
Dicas e Truques TypeScriptDicas e Truques TypeScript
Dicas e Truques TypeScript
 
Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04
 
Clean code como um código ruim pode influenciar a produtividade
Clean code como um código ruim pode influenciar a produtividadeClean code como um código ruim pode influenciar a produtividade
Clean code como um código ruim pode influenciar a produtividade
 
introdução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonintrodução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e python
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07
 
Javascript
Javascript Javascript
Javascript
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Bootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupBootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders Meetup
 

Viewers also liked

Drivers o controladores 6
Drivers o controladores 6Drivers o controladores 6
Drivers o controladores 6putaaaaa
 
Matriz 29 de_novembro[1]
Matriz 29 de_novembro[1]Matriz 29 de_novembro[1]
Matriz 29 de_novembro[1]celinachiara
 
O soldado e o capitão os cravos e o povão
O soldado e o capitão os cravos e o povãoO soldado e o capitão os cravos e o povão
O soldado e o capitão os cravos e o povão12_A
 
Peliculas en cartelera en septiembre de 2015. Noticias de peliculas
Peliculas en cartelera en septiembre de 2015. Noticias de peliculasPeliculas en cartelera en septiembre de 2015. Noticias de peliculas
Peliculas en cartelera en septiembre de 2015. Noticias de peliculasCineralia
 
Ley 26260 violencia familiar
Ley 26260 violencia familiarLey 26260 violencia familiar
Ley 26260 violencia familiarSWEETLUA25
 
Museu Hermitage Escultura Pintura(Lola)
Museu Hermitage Escultura Pintura(Lola)Museu Hermitage Escultura Pintura(Lola)
Museu Hermitage Escultura Pintura(Lola)adam eva
 
Port Grimaud
Port GrimaudPort Grimaud
Port Grimaudadam eva
 
Gestion basica de la informacion
Gestion basica de la informacionGestion basica de la informacion
Gestion basica de la informacionyisedneyder
 
Think 4th - Mobile Phones
Think 4th - Mobile PhonesThink 4th - Mobile Phones
Think 4th - Mobile PhonesEvgeniy Kozlov
 
Compet~encia e imunidade_-_facamp
Compet~encia e imunidade_-_facampCompet~encia e imunidade_-_facamp
Compet~encia e imunidade_-_facampluciapaoliello
 
Reqepay Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...
Reqepay  Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...Reqepay  Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...
Reqepay Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...CLUBE CRÉDITOS
 

Viewers also liked (20)

Proyecto Guia torre 1º y 2º EP
Proyecto Guia torre 1º y 2º EPProyecto Guia torre 1º y 2º EP
Proyecto Guia torre 1º y 2º EP
 
Plan fronvia_(_resumen_ejecutivo)
Plan  fronvia_(_resumen_ejecutivo)Plan  fronvia_(_resumen_ejecutivo)
Plan fronvia_(_resumen_ejecutivo)
 
Alexandra moreno
Alexandra morenoAlexandra moreno
Alexandra moreno
 
Drivers o controladores 6
Drivers o controladores 6Drivers o controladores 6
Drivers o controladores 6
 
Matriz 29 de_novembro[1]
Matriz 29 de_novembro[1]Matriz 29 de_novembro[1]
Matriz 29 de_novembro[1]
 
O soldado e o capitão os cravos e o povão
O soldado e o capitão os cravos e o povãoO soldado e o capitão os cravos e o povão
O soldado e o capitão os cravos e o povão
 
Carta desenvolvimentista
Carta desenvolvimentistaCarta desenvolvimentista
Carta desenvolvimentista
 
Peliculas en cartelera en septiembre de 2015. Noticias de peliculas
Peliculas en cartelera en septiembre de 2015. Noticias de peliculasPeliculas en cartelera en septiembre de 2015. Noticias de peliculas
Peliculas en cartelera en septiembre de 2015. Noticias de peliculas
 
Ley 26260 violencia familiar
Ley 26260 violencia familiarLey 26260 violencia familiar
Ley 26260 violencia familiar
 
Museu Hermitage Escultura Pintura(Lola)
Museu Hermitage Escultura Pintura(Lola)Museu Hermitage Escultura Pintura(Lola)
Museu Hermitage Escultura Pintura(Lola)
 
Que es un voki
Que es un vokiQue es un voki
Que es un voki
 
Port Grimaud
Port GrimaudPort Grimaud
Port Grimaud
 
Gestion basica de la informacion
Gestion basica de la informacionGestion basica de la informacion
Gestion basica de la informacion
 
Spam spyware
Spam spywareSpam spyware
Spam spyware
 
Think 4th - Mobile Phones
Think 4th - Mobile PhonesThink 4th - Mobile Phones
Think 4th - Mobile Phones
 
Qué son las tic parte-01
Qué son las tic parte-01Qué son las tic parte-01
Qué son las tic parte-01
 
Hooters Baja
Hooters BajaHooters Baja
Hooters Baja
 
Compet~encia e imunidade_-_facamp
Compet~encia e imunidade_-_facampCompet~encia e imunidade_-_facamp
Compet~encia e imunidade_-_facamp
 
Reqepay Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...
Reqepay  Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...Reqepay  Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...
Reqepay Transforme seu Celular em uma maquina de Cartão de Crédito e em uma ...
 
Virus y antivirus
Virus y antivirusVirus y antivirus
Virus y antivirus
 

Similar to Groovy para javeiros - Migração Painless

Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com phpbrenod123
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoCaveiras
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
 
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"flaviohalmeida
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutórialucasleite
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptRaphael Donaire Albino
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2Wilson Júnior
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 

Similar to Groovy para javeiros - Migração Painless (20)

Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com php
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Floggy-GUJavaSC-2008-09-20
Floggy-GUJavaSC-2008-09-20Floggy-GUJavaSC-2008-09-20
Floggy-GUJavaSC-2008-09-20
 
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutória
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 

Groovy para javeiros - Migração Painless

  • 1. shutterstock_3248515.jpg Groovy para Javeiros – Migração Painless WCJ IT – Soluções em TI http://www.sp.senac.br/imagens/x1.gif http://www.sp.senac.br/imagens/x1.gif Cuidamos dos valores que fazem sentido para o seu negócio . http://wcj-it.com
  • 2.
  • 4.
  • 10. Por que Groovy? public static void lerLinhaALinha(InputStream stream) { InputStreamReader reader = null ; BufferedReader buffer = null ; try { reader = new InputStreamReader(stream); buffer = new BufferedReader(reader); String linha = "" ; while (linha != null ) { linha = buffer.readLine(); if (linha != null ) { //CODIGO DE NEGOCIO } } } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } finally { if (reader != null ) { try { reader.close(); } catch (IOException e) { LOG .error( "erro carregando arquivo" , e); } } if (buffer != null ) { try { buffer.close(); } catch (IOException e) { LOG .error( "erro carregando arquivo" , e); } } } } public static void lerLinhaALinha (InputStream is) { is. eachLine ( "utf-8" , { linha -> //CODIGO DE NEGOCIO }); } JAVA Groovy
  • 11.
  • 13. Nova linguagem sempre vem acompanhada de um novo ecosistema
  • 14. Risco para o projeto
  • 16.
  • 17. Curva de aprendizado quase zero
  • 18. Aceita 100% da sintaxe Java
  • 20. O mesmo arquivo pode ter código java e groovy
  • 21. Possibilita o uso da melhor ferramenta para o problema em questão.
  • 22.
  • 24. Menos de um dia pra configurar com o Maven
  • 25. Exemplos – Busca de gestores public class Funcionarios { def funcionarios = [ new Funcionario(nome: &quot;Rafael&quot; , salario = 200 , gestor = true ), new Funcionario(nome: &quot;Wilson&quot; , salario = 300 , gestor = true ), new Funcionario(nome: &quot;Renan&quot; , salario = 20 , gestor = false ) ] def buscarGestoresGroovy () { funcionarios . findAll { funcionario -> funcionario.isGestor(); } } public List<Funcionario> buscarGestoresJava () { List<Funcionario> gestores = new ArrayList<Funcionario>(); for (Funcionario funcionario : funcionarios ) { if (funcionario. isGestor ()) { gestores.add(funcionario); } } return gestores; } } public class Funcionario { private String nome ; private double salario ; private boolean gestor ; }
  • 26. Exemplos – Stubs / interfaces public interface ActionListener { public void actionPerformed(); } def actionListener = { println &quot;action executada!&quot; } as ActionListener public interface MouseListener { public void mouseMoved(); public void mouseClicked(); } def mouseMoved = [ MouseMoved: { println &quot;Mouse Movido!!&quot; }, MouseClicked: { println &quot;Clicou!!&quot; } ] as MouseListener
  • 27.
  • 29. Ganho de produtividade, Objetividade e expressividade de código
  • 30. Não vale a pena tentar?

Editor's Notes

  1. WCJ IT – Soluções em TI Cuidamos dos valores que fazem sentido para o seu negócio