Vou voltar a bater numa tecla que já bati há algum tempo: programador que evita conhecer a ferramenta que tem em mãos.
Eu sabia que essa era uma prática comum, mas tenho visto cada vez mais casos como esses. Um exemplo prático interessante, em Java (acontece o mesmo em algumas outras linguagens):
public static void main(String[] args) {
int a = 14;
int b = 014;
if (a == b) {
System.out.println("São iguais");
} else if (a > b) {
System.out.println("a é maior que b");
} else {
System.out.println("a é menor que b");
}
}
Simples, não? A questão é: o que vai aparecer na tela quando esse programa for executado?
Enquanto pensa, vou passar o fundo histórico desse exempo. Um programador gostava de deixar o seu código muito bem identado e alinhado. Acho isso muito bom. Porém, ao criar uma lista de constantes, com poucos valores, sendo um deles com três dígitos e os demais com dois, ele acabou fazendo o seguinte:
VALOR1 = 015;
VALOR2 = 061;
VALOR3 = 122;
Quando foi fazer uma comparação, ele percebeu que tinha algo errado. Ele pesquisou e descobriu o que aconteceu e substituiu os zeros iniciais por espaços.
Este é o ponto chave desse post. Eu já não sei quantas noites eu também perdi tentando entender o que deu errado em determinado programa.
Normalemente a solução imediata para o problema aparece rápido (como no caso das constantes com zero acima, basta remover o zero e pronto). Mas o que me desanima nessa área é que boa parte dos profissionais se limita a achar que basta funcionar e o resto que se dane. Não se preocupam em entender o que acontece e acabam sendo bastante limitados.
Muitas vezes demontram total ignorância com relação à ferramenta que usam. Gosto de perguntar: “Por que você fez isso?”. Escolha uma das respostas abaixo:
- Ah! Não sei. Não deu erro assim.
- Eu estava fazendo do jeito que você me falou, mas deu uns erros e eu resolvi fazendo assim. Agora está funcionando. (A parte boa neste aqui é perguntar pro figura o que estava dando errado).
- Cliquei no “Quick Fix” e funcionou. Agora só estou com este outro probleminha aqui.
- Peguei esse exemplo na net. É bom, mas está um pouco difícil de adaptar pro nosso programa.
E por aí vai.
Não tem coisa mais irritante do que dar suporte para isso. Usuário não tem obrigação de conhecer o funcionamento interno do sistema, mas o programador? O cara que diz que manda na máquina?
A propósito, se você ainda não se deparou com o problema dos números iniciados em zero em linguagens como Java ou C/C++, esta é uma boa oportunidade de pesquisar um pouco e entender por que a resposta do programa será: “a é maior que b”.
Arquivado em: Programação
[...] Programadores, estudem, pesquisem! [...]