Nomes de Variáveis: Tudo o que Você Precisa Saber para Programar

Guilherme Brügger D Amato - Audiência Pública na Comissão Senado do Futuro

Guilherme Brügger D’Amato é servidor concursado de TI na Câmara dos Deputados, onde ocupou o cargo de Diretor de Informática entre 2015 e 2016. Com mais de 26 anos de experiência como programador e executivo de TI, já desenvolveu sites e sistemas usados por dezenas de milhões de pessoas. Conecte-se com ele no LinkedIn ou no Instagram.

Você não acha legal assistir aqueles vídeos no Youtube onde os programadores escrevem código tão rápido que parece até que não precisam pensar?

Mas aí, quando vai programar, você faz aquelas pausas longas para pensar nos nomes das variáveis?

Eu já passei por isso…

Aos 14 anos eu comecei a programar e percebi o quanto era difícil criar nomes e padrões de nomenclatura nos meus programas.

Desde então, eu estudei e aprendi bastante sobre isso, até ter essa fluência na hora de programar.

E como esse blog existe para transformar as minhas dificuldades em atalhos para outras pessoas, eu juntei nesse post tudo o que você precisa saber para dar nomes às variáveis sem confundir quem vai ler o seu código, incluindo você mesmo.

Se você ainda tem alguma dúvida sobre como funcionam as variáveis, eu tenho um post completo ensinando o que são variáveis e como elas são usadas em um programa.

Isso é o que você precisa saber para acertar rápido na hora de escolher os nomes da variáveis nos seus programas:

Copie padrões de outros projetos

Por que perder tempo criando seu próprio padrão, se alguém já fez isso diversas vezes?

É claro que eu não estou dizendo para você se apropriar da propriedade intelectual de alguma empresa…

Há vários projetos Open Source que descrevem em detalhes seus padrões de codificação. Isso existe porque as pessoas que contribuem com o projeto precisam manter a coerência com o código existente.

Se esses projetos seguem padrões debatidos e aceitos por programadores do mundo todo, então você não precisa fazer o esforço de criar um padrão só seu, não é mesmo?

O escritor americano Wilson Mizner resumiu bem essa ideia: “Se você rouba de um autor, é plágio; se você rouba de vários, é pesquisa.

Portanto, a dica mais importante que eu posso te dar é essa:

Leia o código escrito por programadores experientes.

O GitHub é um ótimo ponto de partida para isso e também para consultar padrões existentes.

Além disso, pesquise grandes projetos hospedados em suas próprias plataformas, como o sistema operacional Android.

Outro lugar para encontrar bons exemplos é na página dos guias de estilo do Google para código. Eles têm recomendações para diversas linguagens de programação.

Aliás, anote aí um clichê que você vai ouvir durante toda a sua carreira como programador: “Não reinvente a roda!”

Parece uma besteira, mas é a mais pura verdade.

Além de estudar e aplicar padrões disponíveis na Internet, acostume-se a usar um linter.

Um linter é um software que analisa o seu código e aponta erros de estilo com base em padrões pré-configurados. Para a linguagem Python você pode usar o Pylint.

Para JavaScript, você pode usar o ESLint e pode até escolher aplicar os padrões de codificação usados pelo Google.

Outra coisa que você deve fazer é verificar se a linguagem de programação que você está usando tem um guia de estilo ou recomendações para código.

Dessa forma, você ganha tempo usando as boas práticas criadas pelo fornecedor da linguagem.

A linguagem Python tem um documento desse tipo, o PEP 8, que estabelece convenções de código para a biblioteca padrão da linguagem.

De acordo com o autor do PEP 8 e criador da linguagem Python, Guido van Rossum, “Código é lido com mais frequência do que é escrito”.

Por esse motivo, quanto mais fácil de ler for o código, melhor.

As diretrizes de estilo do PEP 8 só são obrigatórias se você for colaborar com código para a biblioteca padrão da linguagem Python. Ainda assim, eu recomendo o seu uso em todos os programas escritos nessa linguagem.

Agora que você já sabe onde buscar inspiração, veja quais são as restrições e convenções de nomenclatura para os nomes de variáveis.

Não use palavras reservadas e caracteres especiais

Veja agora o que você não pode fazer na hora de dar nomes às variáveis no seu programa.

O nome da variável não pode ser uma palavra reservada da linguagem, como if, for ou while, por exemplo.

Na dúvida, veja a documentação da linguagem ou consulte a lista completa que eu montei nesse post, com todas as palavras reservadas das linguagens C, Python, Java e JavaScript, lado a lado.

O nome pode conter letras maiúsculas, minúsculas, números e alguns caracteres especiais, mas não pode começar por um número e nem ter espaços.

Por exemplo, os nomes de variáveis numAlunos e totalAulas são válidos, mas o nome 30reais não é.

Na linguagem Python o único caractere especial permitido no nome da variável é o underscore “_”.

Além disso, o PEP 8 recomenda que sejam usados somente caracteres ASCII para nomes de variáveis, ou seja, nada de letras acentuadas como á, é, í, ó, ú ou ç.

Para saber quais são os caracteres válidos para cada linguagem de programação, basta consultar a documentação da linguagem.

No entanto, mesmo que a linguagem permita diversos caracteres diferentes, eu sugiro que você mantenha apenas o caractere especial underscore “_” no nome das suas variáveis.

Outra restrição que pode existir, dependendo da linguagem, é um tamanho máximo para o nome de uma variável, que pode ser de 8 a 64 caracteres.

Apesar de ser muito raro encontrar uma linguagem com essa restrição de tamanho, veja na seção a seguir por que você deve manter seus nomes de variáveis curtos.

Identifique o propósito da variável no nome

Além das restrições de caracteres que você viu na seção anterior, é importante que o nome da variável identifique bem seu propósito.

Parece que não é à toa que ele é chamado de identificador, não é?

Nomes de uma letra, como x, y, i e j devem ser evitados, a não em laços for e while curtos. Por exemplo:

# Código Python para imprimir o quadrado dos números de uma lista fibonacci = [1, 1, 2, 3, 5, 8] for x in fibonacci: print(x ** 2)
Code language: Python (python)

No código acima, a cada iteração do laço for, a variável x recebe um dos valores da lista fibonacci. Esse valor só é usado para imprimir o quadrado do número e veja que isso acontece logo na linha seguinte ao for.

Ao contrário desse código, se você usar uma variável x em um código muito extenso, vai ter que ficar voltando toda hora ao ponto onde ela foi inicializada para saber que valor ela recebe.

Por esse motivo, prefira sempre usar nomes descritivos, como numFibonacci, numContas e medAlunosTurma, que deixam claro de imediato os valores que as variáveis recebem.

Apesar disso, procure sempre manter o equilíbrio entre nomes descritivos e curtos. Uma variável com nome muito longo torna o código difícil de ler e pode causar uma quebra de linha no editor.

Já pensou usar um nome de variável como numeroPessoasCantandoHinoNacionalPorSemanaPorCidade?

Não dá, não é?

Sempre que puder, abrevie as palavras nos nomes das variáveis, como numCepEndResid, por exemplo.

Mas cuidado para não exagerar e gerar abreviações impossíveis de entender, como nCepER. Isso teria o mesmo efeito que declarar a variável com o nome x, ou seja, ficaria difícil de decifrar.

Agora que você já sabe que o nome da variável deve dizer muito sobre o seu uso, você pode perguntar:

Posso indicar também o tipo de dado no nome da variável?

Pode sim! Você pode usar um nome como bolHaVagas, para indicar que a variável é do tipo booleano.

Eu não gosto muito desse estilo de nome, mas existe até um tipo de notação específico para isso.

Veja mais sobre essa e outras notações na seção a seguir.

Lembre-se que letras maiúsculas e minúsculas são diferentes

Talvez você já tenha visto que, em várias linguagens de programação, os nomes de variáveis são sensíveis ao caso (em inglês, case-sensitive).

Isso significa que o compilador diferencia letras minúsculas das maiúsculas, ou seja, as variáveis totalFaltas e totalfaltas, por exemplo, são diferentes.

Agora imagine se você estiver usando a variável totalFaltas no seu código e escrever totalfaltas em outra linha? Por exemplo:

totalFaltas = 5 # Várias linhas depois... totalfaltas = totalFaltas + 1 # Você criou uma nova variável, que recebe o valor de totalFaltas + 1! print(totalFaltas) # O resultado é 5! print(totalfaltas) # O resultado é 6!
Code language: Python (python)

Dessa forma, você teria duas variáveis para contar uma coisa só. Um bug que pode ser chato de encontrar e corrigir.

E como se resolve isso?

Mais uma vez, usando convenções de código.

Essas convenções dizem respeito à forma como você escreve os nomes de variáveis.

As mais comuns são CamelCase e SnakeCase.

No estilo CamelCase as palavras são escritas em letras minúsculas, com a primeira letra escrita em letra maiúscula, mas só a partir da segunda palavra.

Complicado?

Não se preocupe, é mais fácil do que parece. Veja esses exemplos: primeiroNome, horaExtraAPagar, folhaDoProcesso.

E como isso resolveria o problema do exemplo acima?

É simples. Caso você encontrasse no seu código qualquer nome de variável com mais de uma palavra, sem a primeira letra maiúscula na segunda palavra, você já saberia que é um erro.

O CamelCase é o padrão recomendado das linguagens Java, PHP, JavaScript, C#, Swift e Go.

Na notação Pascal Case a primeira letra do nome também é escrita em letra maiúscula (ex.: PrimeiroNome).

No entanto, essa notação não é usada para nomes de variáveis.

Já no estilo SnakeCase, todas as palavras são escritas em letras minúsculas e separadas por um underscore (“_”).

Exemplos: primeiro_nome, hora_extra_a_pagar, folha_do_processo.

O SnakeCase é o padrão recomendado das linguagens C, Python e Ruby.

Lembra que eu falei que você pode usar o tipo de dado no nome da variável?

Pois é, essa é a Notação Húngara de Sistemas.

Nessa notação, você usa abreviações dos tipos de dados em letras minúsculas como se fosse a primeira palavra do nome da variável. O resto funciona igual ao CamelCase.

Veja como ficariam os exemplos mostrados acima: strPrimeiroNome (string), dblHoraExtraAPagar (double), intFolhaDoProcesso (inteiro).

É bom usar isso?

Bem, se você estivesse programando em COBOL, no editor vi, em 1976, essa notação seria muito útil.

Mas se você estiver usando uma IDE moderna que mostra o tipo do dado quando o cursor está sobre o nome da variável, esse prefixo se torna irrelevante e só dificulta a leitura o identificador.

Um exemplo de convenção que contraria todos os estilos que você viu até agora é o CSS.

Apesar de não ser uma linguagem de programação, o CSS é uma linguagem de estilo. Nela, os valores são escritos em letras minúsculas e as palavras são separadas por hífen “-“.

Essa notação pouco comum é conhecida como kebab case. Por exemplo: background-color, max-width e padding-top. Ela também é usada em URLs.

Por curiosidade, o nome dessa notação vem do Kebab, que nós conhecemos como “espetinho”.

E qual estilo você deve usar?

Não existe consenso entre programadores sobre qual é o melhor estilo.

A escolha é só uma questão de opinião pessoal.

Você pode escolher o estilo que achar melhor, desde que seja consistente, ou seja, use sempre o mesmo ao longo de todo o seu código.

Porém, um componente de peso que deve contar na sua escolha é a base de código existente e as diretrizes de código da empresa onde você vai trabalhar, ou as adotadas pelo mercado de TI.

Nos meus projetos, eu prefiro usar o CamelCase por dois motivos:

Primeiro, porque eu acho muito chato apertar a tecla Shift milhares de vezes para colocar o “_” em cada nome de variável. Mas é claro que eu poderia mapear o underscore para uma outra tecla pouco usada, para não precisar apertar Shift…

Segundo, por que, no SnakeCase, o nome da variável aumenta em uma quantidade de caracteres igual ao número de palavras menos 1.

Mas atenção…

A exceção são os nomes de constantes.

Como você viu, por convenção, os nomes de constantes são escritos usando somente letras maiúsculas.

Assim, não é possível usar o CamelCase.

Nesse caso, fica muito mais fácil ler um nome como NUM_MAX_ANDARES do que NUMMAXANDARES, não é?

Conclusão

Apesar de ser escolhido pelo programador, o nome de uma variável tem algumas restrições e deve observar boas práticas, para que o código seja válido e legível.

Como você viu, os nomes de variáveis não podem usar alguns caracteres, precisam deixar claro para que serve a variável e devem usar uma notação consistente ao longo de todo o código.

A maneira mais rápida de começar é usando um padrão disponível na Internet. Mas o mais importante é você se adaptar às regras existentes para a sua equipe.

Portanto, nunca confronte o seu empregador ou os seus colegas de trabalho por causa de convenções. Na dúvida, apresente seus argumentos de forma educada, mas siga a orientação dos programadores mais experientes, as regras da empresa e os padrões do mercado de TI.

Parece bastante coisa para aprender e aplicar, não é?

Mas, se você quer ser um programador, vai ter que ler muito mesmo.

A boa notícia é que, se você seguir essas recomendações, vai saber tudo o que precisa para programar rápido, sem perder tempo dando nomes às variáveis.

Além disso, você aprende esses conceitos uma vez só e nunca mais eles mudam.

Você tem alguma outra dica para escolher nomes de variáveis? Então escreva nos comentários e ajude outras pessoas que estão começando a programar!

Deixe um comentário