O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Groovy para javeiros - Migração Painless

757 visualizações

Publicada em

Apresentação de 10 minutos sobre migração de java para groovy.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Groovy para javeiros - Migração Painless

  1. 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. 2. O que é Groovy? <ul><li>Linguagem dinâmica para JVM
  3. 3. Ruby / Phyton
  4. 4. Recursos </li><ul><li>Closures
  5. 5. Duck typing
  6. 6. Tipagem estática e dinâmica
  7. 7. Interoperabilidade com Java
  8. 8. Sintaxe flexível
  9. 9. Etc... </li></ul></ul>
  10. 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 = &quot;&quot; ; 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( &quot;erro carregando arquivo&quot; , e); } } if (buffer != null ) { try { buffer.close(); } catch (IOException e) { LOG .error( &quot;erro carregando arquivo&quot; , e); } } } } public static void lerLinhaALinha (InputStream is) { is. eachLine ( &quot;utf-8&quot; , { linha -> //CODIGO DE NEGOCIO }); } JAVA Groovy
  11. 11. Barreiras para aprendizado <ul><li>Por que é difícil desenvolver em uma nova linguagem? </li><ul><li>Curva de aprendizado
  12. 12. Mundança de paradigma
  13. 13. Nova linguagem sempre vem acompanhada de um novo ecosistema
  14. 14. Risco para o projeto
  15. 15. Prazos </li></ul></ul>
  16. 16. Solução para Javeiros <ul><li>Groovy!
  17. 17. Curva de aprendizado quase zero
  18. 18. Aceita 100% da sintaxe Java
  19. 19. Utilize seus frameworks favoritos
  20. 20. O mesmo arquivo pode ter código java e groovy
  21. 21. Possibilita o uso da melhor ferramenta para o problema em questão. </li></ul>
  22. 22. Setup <ul><li>Inclusão de jar nas dependências
  23. 23. Configuração do compilador
  24. 24. Menos de um dia pra configurar com o Maven </li></ul>
  25. 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. 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. 27. Conclusão <ul><li>Custo de configuração muito baixo
  28. 28. Custo de aprendizado baixo
  29. 29. Ganho de produtividade, Objetividade e expressividade de código
  30. 30. Não vale a pena tentar? </li></ul>
  31. 31. Dúvidas?

×