Keep it groovy!

Nessas férias coloquei a linguagem groovy na minha super-lista TODO, já conhecia o basicão, mais resolvi ir além. Groovy é uma resposta ao mundo das linguagens de scripting p/ a plataforma Java. Uma versão dinâmica, enxuta e moderna de linguagem de programação de propósito geral rodando na JVM e integrando-se 100% com a plataforma. Ela não é apenas um Java++ . Groovy é uma revisão 100% OO ( sim, tudo é objeto)  da plataforma Java reunindo características de linguagens como python, ruby e smalltalk além de incluir alguns novos conceitos, como Closures ( enquanto o Java 7 não vem e o Neal Gafter fica só no blá blá blá … )  e suporte a expressões regulares por operadores nativos da linguagem.  Estou terminando de ler o Groovy in Action e acreditem, groovy is really groovy !

Para matar a cobra e mostrar o pau, aqui vai algumas aplicações de groovy no meu dia-a-dia:

  • Estou usando o Ant p/ o processo de build e packaging da  minha aplicação. Só que ela possui dependências de bibliotecas de terceiros. Como faço para adicionar essas dependências no arquivo MANIFEST.MF do meu jar??

Simples. Programe em groovy, dentro do script ant, e gere a lista de dependências, mais ou menos assim:

<groovy>

//definindo atributos no Manifesto do Jar

def date = new Date()

def classPath = []

new File(‘lib’).eachFileRecurse(){ f -> classPath.add(f.path) }

properties.’currentTime’ = date

properties.’classPath’ =  classPath.split(‘,’)

</groovy>

<jar destfile=”${jar.fileName}” basedir=”build”>

<manifest>

<attribute name=”Packaging-Date” value=”${currentTime}” />

<attribute name=”Class-Path” value=”${classPath}” />

</manifest>

</jar>

  • Por acaso, estou precisando gerar uma classe que ainda nem sei o nome, nem qual a super-classe ou interfaces a serem implementadas e muito menos quais são seus atributos e métodos. Posso?

Claro. Isso parece meio dantesco, mas no proximo post quem sabe irei mostrar como utilizei essa loucura toda para criar beans apartir de tabelas de BD’s sem o nome e seus atributos conheçer. Estou implementando um mecanismo de migração de dados chamado Bridge (Ponte). A filosofia é nem saber de onde vem os dados e p/ onde eles vão, simplements migrá – los. Mais não para por aí. A maioria das ferramentas de migração de dados não são flexíveis o suficiente p/ permitir que vc especifique como uma tabela deve ser migrada p/ outra, em outro BD. Um exemplo meu. Imagine que vc tem uma base (sistema de arquivo?) dbase III e tem uma tabela cliente com o campo “flagAtivo” representando se o cliente pode ou não comprar. Caso possa, o valor é um asterisco ‘*’ , caso não possa é em branco.  Imagine que uma nova aplicação está sendo feita e uma nova base de dados deve ser remodelada, de forma que os dados dos clientes possam ser migrados facilmente. E agora o campo flagAtivo é do tipo booleano. E agora, como migrar ??? É essa a função da Bridge. Vc é quem diz como cada coisa vai p/ seu lugar correto. Isso é um caso simples … Imagine que sua tabela cliente tenha dados que só clientes físicos usam e outros que só jurídicos utilizam . No mundo OO uma das possibilidades é usar uma especialização da classe Cliente em ClienteFisico e ClienteJuridico. E no BD ? Vc vai especificar a lógica. Tudo isso em groovy.

  • Preciso ser mais ágil

–  Construa interfaces Swing (com S de sem-graça) mais rápido

– Utilize a API do Java de forma mais ágil, simples

– Desenvolva testes unitários em groovy

– Utilize arquivos xml de maneira simples

– Carregue e execute regras de negócios ou qualquer outro código dinamicamente dentro da sua aplicação Java

–  Closures, expressões regulares, ranges …

Keep it groovy!

Anúncios

Deixe um comentário

Arquivado em Groovy, Java

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s