Bom dia pessoal!
ESTE É UM POST TÉCNICO.
Hoje vou falar sobre um tópico muito, mas MUITO importante na área de programação. Antes de começar vou dar os devidos créditos dessa sabedoria aos que merecem, Jonas Abreu e Michel Forster, dois programadores que me ensinaram o valor do nome de uma variável. Vocês devem estar se perguntando "Mas um post inteiro sobre o nome de uma variável? Mas isso é algo tão trivial para mim..." , é ai que você se engana Jovem Gafanhoto, o nome que você da as variáveis é tão importante para o código quanto por exemplo o título dos capítulos de um livro ( ou se eles terão um título). Como todo post técnico será feito devagar e com bastante calma, para que todo mundo possa entender, mesmo os que não tem proficiência em alguma linguagem de programação. Acredito que essa seja um dos "Pontos Fundamentais da Programação", quero dizer, uma das condições sine qua non para um excelente/mito/lendário programador. A despeito da linguagem que você programa todos os programadores vão ter que declarar variáveis um dia. Vou escrever em Java que a linguagem que eu mais tenho contato atualmente mas o que eu vou demonstrar pode ser aplicado em basicamente qualquer linguagem. Esse processo de aprender a declarar variáveis é simples e é uma das primeiras coisas que você aprende na área. Alguns exemplos de declaração de variável são :
1 - String x ;
2 - byte[] x2;
3 - int x3;
etc
etc.
Nesse exemplo estamos somente declarando primeiro o tipo "String, array de byte, e int" e depois o bendito nome da variável. A pergunta que eu vos faço é simples, lendo o nome da primeira variável você sabe o que ela guarda? O que guarda a String x? Por que ela é uma string e não um array de chars? E será que o Goku vai conseguir matar o freeza antes de eu me casar? Brincadeiras a parte, é sobre esse assunto que o texto é dedicado. Como dar um bom nome para uma variável. O caso é que vários e vááááááarios artigos já falam extensivamente sobre isso, pessoas com um gabarito bem maior que o meu já falaram em palestras etc. Mas vou abordar o conceito de maneira introdutória para que isso possa aguçar a curiosidade dos meus leitores técnicos. Voltando as variáveis, vamos pensar que elas estão em um contexto de um POJO (
link ) que representa o pedido dos clientes. Sem poder ler o resto do código o que essas variáveis representam do pedido? Não temos a mínima ideia. Agora se mudarmos para algo assim:
1- String nome;
2- byte[] produtos;
3- int numero;
Agora mudou de figura. Agora sabemos que o número 1 representa um nome, o número 2 representa os produtos do pedido e o número 3 representa um número. Os nomes melhoraram? Com certeza. Eles estão bons? Com certeza não. Vamos focar no número 1. Agora lendo o nome da String podemos rapidamente identificar que é o nome de algo, mas do que? É o nome da atendente que registrou o pedido ou o nome do solicitante? É um nome fictício do sistema ou o nome real do banco de dados? É um nome completo ou só o sobrenome? Depois de muita investigação no código você descobre que é o primeiro nome de cadastro do cliente no banco de dados. Então vamos mudar o nome da variável para:
1- String primeiroNomeDoClienteNoBancoDeDadosString;
Agora sim. Temos um nome de variável que, sem precisar saber a lógica do programa , sabemos exatamente o que ela guarda. Mas ela está boa? Ainda não. Ela tem dois erros básicos ao se atribuir nome as variáveis. O primeiro é usar "Do"/"No"/"De" isso não faz sentido. Sem esses "conectivos" poderíamos entender muito bem e ficaria:
1- String primeiroNomeClienteBancoDadosString;
Agora falando especificamente de java, é muito tentador dar o nome do tipo as coisas que fazemos. Por exemplo uma interface chamada "CacheDistribuedInterface". Mas de novo, isso não faz sentido nenhum em Java, pois java é uma linguagem fortemente tipada. (
link ) Sendo fortemente tipada, você programador, não precisa escrever o tipo do nome da variável por que ela simplesmente não vai mudar na execução do programa. ( Se você tem uma variável que é uma interface e o que pode mudar é o tipo de implementação que ela está guardando, mas o tipo dela não mudará). Arrumando essa pequena
"falha" :
1- String primeiroNomeClienteBancoDados;
Agora melhorou. Mas não está boa ainda. Esse nome de variável está muito grande. E ele fica difícil de guardar na memória enquanto você lê o código e debuga na sua mente. Imagina um programa só com variáveis gigantes... seria um "
out of memory error" (
link ) na sua cabeça. Fiz uma brincadeira, mas o assunto é sério, não devemos dar nomes gigantes a variáveis pois eles são difíceis de guardar enquanto se lê o código. Agora estão se perguntando: "Mas então, se não podemos ser curtos demais, nem longos demais, como saberemos que o nome da variável é um nome perfeito?" . Esse é o ponto,
nunca poderemos afirmar que o nome da variável está perfeito por que isso é uma opção pessoal. O que podemos indicar são nomes ruins, isso é fácil. Mas um excelente... é muito difícil. O ideal é você conseguir fazer que um nome de variável seja tanto descritiva quanto concisa, e a intersecção dessas duas qualidades faz a qualidade do nome de suas variáveis subir. Aqui vão algumas sugestões para a resolução do nosso pequeno exercício:
1-
String nomeClienteBD;
2- String nameClientDB;
3- String solicitanteNome;
4 - String clientNameDb;
etc
etc
etc
Fim.