Dica de Programação 4 - StringBuilder

Dica de Programação #4 – StringBuilder

Você já precisou ler um arquivo muito grande do disco, processar linha a linha para só então guardar as linhas válidas e? Estou falando de um código como este:

File bigFile = new File("big-file.txt");
Scanner scanner = new Scanner(new FileReader(bigFile))
 .useDelimiter("\\n");

String validas = "";
while (scanner.hasNext()) {
    String linha = scanner.next();
    if (linha.contains("ok")) {
        validas += linha;
    }
}

// faz algo com as linhas validas

O código é bem simples e parece inofensivo. Mas e se eu te falar que você pode ter problemas de performance exatamente na linha que faz a concatenação de strings?

Este é o típico caso que devemos evitar a concatenação de strings com o operador + (mais) e favorer o uso da API StringBuilder do Java.  Com StringBuilder ajudamos a JVM e resolvemos o gargalo de desempenho num código tão simples quanto aquele.

Quer saber mais sobre o uso da StringBuilder? Assista nosso novo vídeo com a 4a dica de programação:

[Vídeo] Dica de Programação #4: StringBuilder

Como os demais vídeos que publicamos, este também é curtinho e tem uma dica que vai fazer você repensar antes de sair concatenando grandes strings no seu código.

E não esqueça: compartilha o vídeo com aquele seu amigo que acha que concatenar strings é inofensivo para aplicação.

 

10 razões para migrar sua aplicação para JSF2

Hoje foi publicado no blog da Caelum um post sobre as 10 razões para migrar sua aplicação para JSF2, e eu tive o prazer e a honra de colaborar com o post a convite de um grande amigo, o Raphael Lacerda.

O post enumera 10 razões que vão desde aspectos técnicos até comerciais, entre eles podemos citar  alguns como melhoria de performance, melhorias na especificação e fim do suporte à versão antiga da especificação e componentes.

Vale a pena conferir.

Hibernate Efetivo – erros comuns e soluções

Neste último final de semana, dias 4 e 5 de Agosto, ocorreu a terceira edição do QCon São Paulo, na qual reuniu 1000 participantes em dois dias de evento.

Diferentemente das últimas duas edições, na qual marquei presença como espectador, este ano eu tive a oportunidade de palestrar sobre o tema Hibernate Efetivo – erros comuns e soluções.

A edição deste ano superou as edições anteriores em vários aspectos, como organização, qualidade do wi-fi, nível das palestras e lightning talks, discussão nos corredores e claro, um excelente coffee-break. Devo parabenizar os organizadores pelo evento, principalmente pelo apoio dado a caravana da JavaCE, que este ano marcou presença em peso.

Sendo, segue os slides da minha apresentação, que por sua vez poderá ser baixada no formato PDF:

Durante a apresentação houve uma demo mostrando a diferença de performance na utilização do Hibernate em processamentos batch com e sem o uso da StatelessSession.

Uma das coisas que me deixou hiper-super feliz no evento foi a incrível oportunidade de ser entrevistado pela InfoQ Brasil sobre minha palestra, citando algumas boas e más práticas ao se trabalhar com Hibernate e problemas de performance. Vale a pena conferir!

No blog da Caelum você pode encontrar um excelente resumão do evento, além dos keynotes, e da maioria das palestras e lightning talks já divulgadas até o momento.

Gostaria de parabenizar novamente a Caelum pela organização e sucesso desta edição e, principalmente, pela oportunidade que me foi dada para palestrar neste grande evento.