Arquivo para junho, 2010

Compondo seu comportamento: herança, Chain of Responsibility e Interceptors

Postado em 28. jun, 2010 por .

12

São diversos os momentos em que temos a tentação de usar herança para implementar funcionalidades de maneira rápida. Um exemplo simples é o polêmico caso de Properties e Hashtable em Java. Alguns padrões também costumam ser implementados através de herança são cadeias de responsabilidade, decorators, template method, filtros/interceptadores, entre outros. O exemplo a seguir mostra more »

Continue Lendo

Ordenando coleções com Comparable e Comparator

Postado em 22. jun, 2010 por .

16

Uma tarefa comum no dia-a-dia dos desenvolvedores é ordenar uma lista ou array. Para não inventar a roda, a Collections API do Java (também conhecida pelo nome do seu pacote, o java.util) vem pronta para ajudar nessa tarefa. Falamos dessa API extensivamente na apostila do curso FJ-11, e vou aqui passar para o problema específico more »

Continue Lendo

Noite ágil na Caelum

Postado em 22. jun, 2010 por .

6

Nesse mês de Junho de 2010, foi realizada a primeira Noite Ágil, uma iniciativa do André Pantalião na lista happy hour ágil que foi rapidamente aceita, e tivemos a primeira experiência realizada na Caelum de São Paulo. A noite começou com o Adolfo Souza falando sobre os problemas resolvidos e em aberto em “O papel more »

Continue Lendo

Guardando senhas criptografadas em Java

Postado em 17. jun, 2010 por .

18

Eu e o Thiago Ferreira estavámos mais uma vez na Caelum passando pela situação de gravar as senhas do usuário no banco de dados. Ainda hoje alguns grandes sites cometem o grave erro de guardar as senhas dos usuários em texto puro, fazendo com que um possível roubo de dados acarrete num problema ainda maior. more »

Continue Lendo

Revisitando a concatenação de Strings: StringBuilder e StringBuffer

Postado em 13. jun, 2010 por .

22

Uma discussão muito antiga que frequentemente aparece no Java é o uso errado da concatenação de Strings, que pode acarretar numa grave perda de performance e trashing de memória. Mas por que? O problema é muito simples de enxergar. Imagine um laço em que você concatena uma String com todos os números de 0 a more »

Continue Lendo

Escalando sistemas com soluções NoSQL

Postado em 07. jun, 2010 por .

10

Um dos grandes desafios enfrentados no dia a dia do desenvolvedor eficaz é o de cumprir requisitos não-funcionais de uma aplicação, principalmente os relacionados a performance e escalabilidade. Uma das alternativas mais conhecidas para escalar horizontalmente é a de dividir as tarefas que não necessitam de retorno imediato ao cliente em processos batch. Para tanto, more »

Continue Lendo