Groovy para javeiros - Migração Painless

723 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
723
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • WCJ IT – Soluções em TI Cuidamos dos valores que fazem sentido para o seu negócio
  • 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?

    ×