O caso do byte perdido

Encontre o erro:

public class AnyInputStream extends InputStream {
  private byte getTheNextByteFromSomewhereElse(){
    // do something useful
  }

  public int read() {
    byte result = -1;
    if(!(hasAnyKindOfError() || wasTheLastByte())) {
      result = getTheNextByteFromSomewhereElse();
    }
    return result;
  }
}

A propósito, os nomes estranhos de métodos e da classe são meramente ilustrativos, para auxiliar na compreensão.

Qual o problema do fonte?

Quando você tem algum erro de leitura, ou chega ao final do conteúdo, recebe um -1 como resposta. Caso contrário, recebe o próximo byte e assim por diante. O problema ocorre quando você lê um byte de valor 255.

Se você jogar o valor 255 numa variável de typo byte, no Java, ele passa a ser -1, por questões de overflow e tamanho de variável. Ou seja: um byte válido passa a ser compreendido como final de arquivo ou erro de leitura.

Um simples teste teria pego esse erro ainda na mesa do programador e ele não teria chegado ao ambiente de produção.

Então eu pergunto:
– qual o problema em testar a droga da funcionalidade antes de entregar?
– qual o problema em gastar alguns segundos pensando antes de escrever?
– qual o problema em prestar atenção na merda que você, supondo que seja um desenvolvedor, está fazendo?

São essas coisas que me fazem achar que estou me preocupando em limpar os pés para entrar numa sala cheia de lama.

Anúncios

One Response to O caso do byte perdido

  1. Pingu disse:

    Imagina o desespero do cara que descobriu esse erro no meio de uma looooonga noite.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: