quarta-feira, 21 de janeiro de 2009

Uma POG daquelas

Tudo bem...Todo programador razoavelmente experiente já possou por trechos de códigos que dá vontade de fazer coisas sem sentido como chorar, matar ou instalar o windows num Mac.

Já faz quase um ano troquei de emprego. No meu local de trabalho agora programamos em Java, com MVC e banco orientado a objetos. Achei o máximo. Tudo bem de alto nível.

Não demorou pra eu ver que o Banco Cachè(é só falar o nome que me da coceiras) não era o melhor banco do mundo(saudade do postgres), mas pior do que isso é ver trechos bizarros de códigos feitos sobre uma estrutura muito bem montada, como nesse caso:

private Iterator<
InteresseMudancaLocalizacao> getInteressesFiltradosStatus(
Iterator<InteresseMudancaLocalizacao> interesses,
InteresseMudancaLocalizacao interesse) throws ExcecaoConsultaVazia {
Collection<InteresseMudancaLocalizacao> retorno = new ArrayList<InteresseMudancaLocalizacao>();
while (interesses.hasNext()) {
retorno.add(interesses.next());
}
return retorno.iterator();
}

Confesso que já vi muita coisa mas essa me deixou meio atonito. Li o trecho umas quinhentas vezes pra ver se nao tinha perdido nada mas nao, O código realmente recebe o iterator, faz malabarismo com ele e retorna a mesma coisa que recebeu, sem nenhuma modificação.

Eu nao culpo o autor desse código pela bizarrisse mas a sua pressa em terminar o programa com prazos absurdos o que, como todos sabem, é a mãe de todas as POG's

Fica aqui a pergunta: será que criar prazos absurdos só para ver o programa rodando vale mesmo a pena. Imagina a perda de desempenho só com esse trecho de código já que ele era executa dezesseis (!) vezes durante um único post.

SINISTRO