Posts com a Tag ‘java’

Integração Contínua de aplicações Python com Hudson

segunda-feira, 27 de outubro de 2008

No começo deste mês eu dei dicas sobre como usar o Fabric para automatizar o build e o deployment de aplicações Python.

Essa automatização por si só já quebra uma árvore, mas ela possibilita ainda o uso de Integração Contínua, uma prática extremamente importante que costuma ajudar muitas equipes a manter seus projetos nos trilhos. Para mais informações sobre Integração Contínua, eu recomendo a leitura deste artigo, até porque este post terá um enfoque mais prático.

Neste texto será mostrado como configurar um projeto Python no Hudson, um servidor de Integração Contínua muito simples de configurar e utilizar. O sistema de controle de versões que eu utilizo aqui é o Git, mas usuários de outros sistemas também poderão achar este texto útil. (mais…)

Em tempos de Mega Sena acumulada…

sábado, 27 de setembro de 2008

Há algum tempo atrás eu acabei me deparando com um desafio bastante interessante proposto por Rodrigo Sol. O desafio em questão pede a criação do menor programa possível — em qualquer linguagem — para gerar um jogo da Mega Sena. Hehe, impressionante o poder de uma loteria acumulada sobre as pessoas! :D

Seguem as regras do desafio nas palavras do próprio Rodrigo:

Escrever em qualquer linguagem de programação um programa que realize 100.000 sorteios de um numero entre 1 e 60 e mostre na tela os 6 mais freqüentes.

Ganha quem fizer o programa com o menor numero de linhas possíveis, lembrando que a linha considerada é a linha da unidade léxica da linguagem, portanto a seguinte linha em Java seria considerada duas: int i =0; sysout(i);

Como na época eu estava aprendendo Groovy, não podia deixar esta oportunidade passar. E, de fato, não deixei! (mais…)

Debugando aplicações JavaEE no Glassfish v2

segunda-feira, 22 de setembro de 2008

Este post, na verdade, é uma dica rápida para quem possui aplicações JavaEE rodando em servidores Glassfish e está tendo dificuldades na hora de rastrear a origem de possíveis bugs no código. (mais…)

JavaEE 5 interceptors

domingo, 21 de setembro de 2008

É inegável que a não-tão-nova versão 5 da especificação JavaEE veio numa hora mais do que necessária. Todo mundo parecia — e com razão — evitá-la ao máximo, pois seu uso demandava muito tempo e caixas de calmante.

Hoje, criar e manter uma aplicação com EJBs é relativamente simples. E, por este motivo, a adoção da tecnologia passou a ser mais expressiva, mesmo em projetos menores.

Alguns aspectos da especificação, entretanto, ainda deixam a desejar. Um exemplo seria a parte de injeção de dependências, que é limitada apenas a componentes gerenciados pelo container. O que isso quer dizer? Isso quer dizer que, para você poder tirar proveito do esquema de injeção de dependências, todos os seus componentes precisam ser EJBs.

Mas, nesta versão, os EJBs não são POJOs? Sim, mas ter de expor classes simples como EJBs — só para ganhar essa “injetabilidade” de presente — não parece correto. E, da mesma forma, espalhar instanciações de objetos pelos vários componentes da aplicação definitivamente também não parece. (mais…)

2 (boas) formas de testar clientes JavaMail

sábado, 20 de setembro de 2008

Sem sombra de dúvidas, a API Java mais usada para resolver a questão do envio e recebimento de emails é o JavaMail. Apesar de existirem outras opções, como o Spring Mail e Commons Email, no fim das contas é o próprio JavaMail quem faz todo o trabalho sujo, já que tais APIs são baseadas no próprio JavaMail.

Apesar de dar conta do recado, a referida API conta com alguns problemas bastante complicados, dentre os quais eu destaco o design (horrível, diga-se de passagem) de suas classes e interfaces, que parecem fazer o possível para dificultar a testabilidade dos seus “clientes”. (mais…)

Test Driven Development com Java Swing

quinta-feira, 18 de setembro de 2008

Deixarei hoje algumas dicas sobre como desenvolver uma aplicação em Java Swing de conversão de temperaturas utilizando uma técnica de desenvolvimento de software conhecida como TDD (Test Driven Development). Então, se você nunca ouviu falar em TDD antes, procure dar uma estudada para saber do que se trata antes continuar lendo este texto. Garanto que, por mais esquisito que esse negócio de TDD possa parecer, é um jeito bem interessante de se desenvolver aplicações.

Basicamente, a sequência que seguiremos no decorrer deste artigo será a seguinte: primeiramente, criaremos testes de unidade com o JUnit para definir a lógica para conversão de uma temperatura para outras escalas (Celsius, Kelvin e Fahrenheit). Em seguida, iremos programar essa lógica até que todos os testes passem. Depois disso, a interface com o usuário será desenhada e o seu comportamento definido, através da criação de testes JUnit + FEST-Swing, ferramenta esta muito interessante que permite automatizar testes em aplicações Swing. Por fim, programaremos a lógica da View até que todos os testes passem.

É, eu sei… na teoria tudo parece muito bonito, mas, e na prática? Será que funciona assim mesmo? Se está curioso, então continue lendo! (mais…)