Atualização do chrome
Por: ramzmar • 24/9/2015 • Artigo • 3.240 Palavras (13 Páginas) • 196 Visualizações
Explicação
Com certeza, todo desenvolvedor de software já escreveu um trecho de código que não funcionava. E pior, muitas vezes só descobrimos que o código não funciona quando nosso cliente nos reporta o bug. Nesse momento, perdemos a confiança no nosso código (já que o número de bugs é alto) e o cliente perde a confiança na equipe de desenvolvimento (já que ela não entrega código de qualidade). Mas será que isso é difícil de acontecer?
Para exemplificar isso, imagine que hoje trabalhamos em um sistema de leilão. Nesse sistema, um determinado trecho de código é responsável por devolver o maior lance de um leilão. Veja a implementação deste código:
class Avaliador {
private double maiorDeTodos = Double.NEGATIVE_INFINITY;
public void avalia(Leilao leilao) {
for(Lance lance : leilao.getLances()) {
if(lance.getValor() > maiorDeTodos) {
maiorDeTodos = lance.getValor();
}
}
}
public double getMaiorLance() {
return maiorDeTodos;
}
}
class TesteDoAvaliador {
public static void main(String[] args) {
Usuario joao = new Usuario("Joao");
Usuario jose = new Usuario("José");
Usuario maria = new Usuario("Maria");
Leilao leilao = new Leilao("Playstation 3 Novo");
leilao.propoe(new Lance(joao,300.0));
leilao.propoe(new Lance(jose,400.0));
leilao.propoe(new Lance(maria,250.0));
Avaliador leiloeiro = new Avaliador();
leiloeiro.avalia(leilao);
System.out.println(leiloeiro.getMaiorLance()); // imprime 400.0
}
}
Esse código funciona. Ao receber um leilão, ele varre a lista buscando o maior valor. Veja que a variável maiorDeTodos é inicializada com o menor valor que cabe em um double. Isso faz sentido, já que queremos que, na primeira vez que o forseja executado, ele caia no if e substitua o menor valor do double pelo primeiro valor da lista de lances.
A próxima funcionalidade a ser implementada é a busca pelo menor lance de todos. Essa regra de negócio faz sentido estar também na classe Avaliador. Basta acrescentarmos mais uma condição, desta vez para calcular o menor valor:
class Avaliador {
private double maiorDeTodos = Double.NEGATIVE_INFINITY;
private double menorDeTodos = Double.POSITIVE_INFINITY;
public void avalia(Leilao leilao) {
for(Lance lance : leilao.getLances()) {
if(lance.getValor() > maiorDeTodos) {
maiorDeTodos = lance.getValor();
...