All posts by Felipe Mamud

Software Craftsman polyglot and Open Source enthusiast.

Groovy como você nunca viu

Este foi o título da palestra que fiz do TDC São Paulo 2016. É sempre muito bom poder falar de Groovy para as pessoas e mostrar como elas podem ser mais produtivas e certeiras em resolver diferente tipos de problemas utilizando Groovy e ainda mais falar de Groovy no meu evento de software preferido, o TDC! (Não tem preço)  😀

Na Trilha Java, o foco da talk foi mostrar diversos cenários onde a estratégia de usar Groovy + Java proporciona ao desenvolvedor flexibilidade, eficiência e poder quase infinito para desenvolvimento de software para a JVM.

Comecei falando sobre o que é Groovy de um jeito diferente, reforçando características como optionally typed, static-typing e static compilation. Em seguida contei, de maneira breve, a história da linguagem Groovy e todo seu vasto ecossistema, emendando, sem delongas, como funciona as 9 fases do compilador do Groovy.

Para acabar o bla bla bla, fiz um live coding mostrando diversas características bacanas do Groovy como: AST, DSL, Builders, Java Interop, GDK, etc.

Segue abaixo o gist do live coding:

Segue abaixo o slide da talk:

Tive um feedback bem positivo da galera que assistiu a talk e creio ter superado as expectativas: de ter feito alguém aprender algo novo e mostrar como Groovy é uma linguagem extremamente poderosa.

Bom é isso ai galera, espero que vocês aproveitem todo o conteúdo! Até mais!

Grande abraço,
Felipe Mamud
friendstechday.com | SHARE, LEARN & CONTRIBUTE! JOIN US!

 

Geb: Automatizando seu browser com Groovy

Há um tempo venho querendo estudar o Geb que é uma solução de automação para browsers. O bacana é que ele utiliza o conceito de WebDriver, com uma DSL similar ao jQuery e seus seletores e por fim a melhor parte: Groovy!

O ponto é que você pode utilizar o poder da linguagem Groovy em todas as áreas de automação do Geb, como por exemplo realizar uma iteração em uma coleção de elementos HTML recuperados por um seletor do Geb.

Para ilustrar tudo isso que falei nada melhor que um exemplo para isso. Resolvi fazer algo que queria fazer um tempo: um histórico de onde vieram as linguagens baseada no Wikipedia. (para este exemplo utilizei o WebDriver do Firefox)

O objetivo deste script é buscar todas as linguagens de programação que Groovy influenciou. Para isso utilizamos a URL da página do Groovy no Wikipedia, buscando pela tag <th> que contém o texto “Influencied”. Após isso iteramos todos os elementos <a> do primeiro vizinho da <th> em questão. Com a lista de links na mão, criamos um mapa com todas as linguagens e suas respectivas URLs. Viu como é fácil? Vamos ver no código como que fica:

[gist https://gist.github.com/fmamud/37883e586883b2823c35 /]

Dica: experimente trocar a URL por outra linguagem do Wikipedia =D

Uma possível melhoria seria um algoritmo recursivo para retornar uma árvore de influências de linguagens, mas vamos deixar este para outro post.

No meu caso tive problemas com Grab utilizando Proxy. Para isso configurei minha variável de ambiente JAVA_OPTS com os valores de meu proxy.  (Veja aqui)

[gist https://gist.github.com/fmamud/2fcd210df310ec79353e /]

E também utilizei a dica do lalyos com uma configuração do Ivy:

[gist https://gist.github.com/lalyos/9366690 /]

E para quem usa Windows, de “quebra” fiz um script em PowerShell para recuperar o arquivo de configuração do Grab:

[gist https://gist.github.com/fmamud/54ba06bc8956b4786b7b /]

É isso ae pessoal, espero que tenham sentido o poder que o Geb tem em nossos testes automatizados com nossas aplicações Web.

[]s
Felipe Mamud
@ftmamud