A apresentação introduz as ferramentas Groovy, Gradle, Spock e Geb. Groovy é uma linguagem dinâmica que roda na JVM, enquanto Gradle é um gerenciador de builds. Spock é uma biblioteca para testes em estilo BDD e Geb fornece suporte para testes funcionais baseados em navegador.
4. Groovy, what?
• Linguagem que roda na JVM
• Gera bytecodes (.class)
• Linguagem Dinâmica
• Definição de tipos em runtime
• Possivel criação de atributos e metodos em
runtime
5. Groovy, why?
• Baixa curva de aprendizado para Java
devs
• Aprimora as libs padrão do Java, ao invés
de substituí-las
• Syntax Sugar
• Closures ♥
• Ótimo para criação de DSLs
6. Baixa curva de
aprendizado?
public void salvar(Usuario usuario){
usuarioService.salvar(usuario);
}
void salvar(Usuario usuario){
usuarioService.salvar(usuario)
}
9. Closure?
• Funciona como uma função, mas não se engane:
é um objeto
• É um objeto que implementa a interface
Callable, por isso possui um método call()
• Porém o groovy adiciona syntax sugar que nos
permite executar uma closure sem chamar
explicitamente o método call...
10. Closure?
• Por ser um objeto, pode ser passado como
parametro e retornado como resultado
• Closure nos auxilia a aplicar um pouco de
programação funcional em nosso codigo através
de:
• Curry
• Memoization
• Trampoline
17. Closure?
E o que mais?
• this: referência do objeto/classe onde foi criado
• owner: idêntico ao this, porém caso seja criado
dentro de outra closure, o owner se torna a closure
externa
• delegate: idêntico ao owner, mas pode ser
alterado
20. Gradle, why?
• Maven
• Build, muitos plugins, lifecycle bem definido, gerencia
dependencias
• Burocrático, dificil de personalizar (criar tasks)
• Gradle
• Build, muitos plugins, lifecycle bem definido, gerencia
dependencias, fácil de personalizar (criar tasks), groovy
ao invés de xml
• Gradle Wrapper
22. Gradle
• Se molda ao seu processo e não o contrário
• Exemplo de uso:
• Criação de instâncias na núvem (ec2)
• Upload de artefatos gerados onde quiser
• Livre pra integrar com o que quiser!!!