Os principais padrões de nome na programação
Na programação, sabemos que não é possível/recomendado utilizar espaço e caracteres especiais na hora de nomear elementos do programa (variáveis, classes, funções etc.). Por isso, quando é necessário utilizar mais de uma palavra no mesmo nome, é empregada alguma técnica para deixar claro que ali há duas palavras mesmo que sem espaço.
Porém, se você já programou em mais de uma linguagem de programação, já deve ter percebido que há mais de uma convenção para isso. Alguns escrevem nomeDeVariavel, outros nome_de_variavel, e há também NomeDeVariavel. Neste artigo, nós vamos falar sobre cada uma dessas conveções e onde elas são mais comuns.
Sumário
- Por quê há padrões de nome?
- Os principais padrões
2.1 Snake Case
2.2 Kebab Case
2.3 Camel Case
2.4 Pascal Case - Exemplos
- Conclusão
- Referências
Por quê há padrões de nome?
Primeiro, é importante entender o porquê de haver essas "regras". Na verdade, você não é obrigado a utilizar convenção x na linguagem y. Se você escreve um programa válido, não importa como você o escreveu, o compilador/interpretador vai compreender e você vai conseguir executá-lo.
Entretanto, se cada um de nós escrevermos de uma forma diferente, o código vai parecer desorganizado e menos legível. É uma questão de padronização: devemos sempre prezar pela legibilidade do nosso código. Não importa qual convenção será utilizada, mas sim que a mesma convenção seja aplicada durante o código-fonte do programa inteiro.
Os principais padrões
Neste artigo, vamos abordar as quatro formas mais populares de nomear elementos no código: Snake Case, Kebab Case, Camel Case e Pascal Case.
Snake Case
Neste padrão, inicia-se o nome do elemento com letra minúscula e, caso haja mais de uma palavra, elas devem ser separadas por traço baixo/underscore (_).
Nome do elemento | Snake Case |
---|---|
Tab News | tab_news |
Número de carros azuis | numero_de_carros_azuis |
Snake Case | snake_case |
Uma variação da Snake Case, popularmente apelidada como Screaming Snake Case, é bastante utilizada para nomear constantes em diferentes linguagens. Ela segue a mesma norma da Snake Case, mas com todas as letras em maiúsculo (exemplo: VALOR_DE_PI = 3.14
).
Atualmente, um exemplo de linguagem que utiliza Snake Case é o Python, que recomenda seu uso para nomes de variáveis, funções e módulos.
Kebab Case
Outra norma bastante utilizada, o Kebab Case é bem parecido com o Snake Case, mas utilizando hífen em vez de underscore. Esse nome se popularizou pois seu uso lembra um kebab, mas também é conhecido como dash case ou Lips case (em referência à linguagem Lisp que o popularizou).
Nome do elemento | Kebab Case |
---|---|
Tab News | tab-news |
Título do post | titulo-do-post |
Kebab Case | kebab-case |
Podemos ver seu uso principalmente em URLs (www.tabnews.com/meu-post
), em atributos de HTML e em propriedades de CSS (border-radius
, justify-content
etc.).
Camel Case
A terceira norma é uma das mais comuns. A regra consiste em não utilizar nenhum separador, mas iniciar todas as palavras com letra maiúscula com exceção da primeira.
Nome do elemento | Camel Case |
---|---|
Tab News | tabNews |
Distância entre cidades | distanciaEntreCidades |
Camel Case | camelCase |
Essa norma é bastante popular entre linguagens da família do C, como C++, C#, Java, JavaScript e Dart.
Pascal Case
Por último, mas não menos importante, temos uma versão alternativa do Camel Case. Pascal Case segue a mesma regra de Camel Case, mas a primeira palavra também é iniciada por uma letra maiúscula. Por conta disso, é comum encontrarmos as duas sendo referenciadas como Upper e Lower Camel Case.
Nome do elemento | Pascal Case |
---|---|
Tab News | TabNews |
Aplicativo Mobile | AplicativoMobile |
Pascal Case | PascalCase |
Ela também é utilizada em linguagens da família C, mas em contextos diferentes, como criação de classes por exemplo.
Exemplos
Algumas linguagens possuem guias oficiais que recomendam o uso de certas convenções. Abaixo, podemos ver alguns exemplos:
Elemento | C# | Python | Java | TypeScript |
---|---|---|---|---|
Funções/Métodos | PascalCase() | snake_case() | camelCase() | camelCase() |
Variáveis | camelCase | snake_case | camelCase | camelCase |
Constantes | SSC | SSC | SSC | SSC |
Classes | PascalCase | PascalCase | PascalCase | PascalCase |
Obs: SSC corresponde a SCREAMING_SNAKE_CASE
.
Conclusão
Conforme já foi dito, as convenções são um meio de você tornar seu código mais legível e fazer com que outras pessoas tenham algumas noções a respeito dele. Embora Python não possua suporte para valores constantes, o uso de Screaming Snake Case indica para outros programadores que aquele valor não deve ser reatribuído/alterado, mesmo que isso seja possível.
Além dessas convenções, há também outras mais específicas de cada linguagem. Um exemplo seria uma prática típica em linguagens orientadas a objeto: o uso de underscore antes do nome de um elemento indica que ele é parte encapsulada de um objeto, e não deve ser acessado em outros escopos no código.
É importante sempre ter em mente que o código, além de funcional, deve ser legível. Se você quiser saber mais a respeito das convenções de cada linguagem, estarei deixando as referências deste texto logo abaixo. Obrigado pela atenção! =)
Referências
- "Camel Case vs. Snake Case vs. Pascal Case — Naming Conventions", Khalil Stemmler
- "Programming Naming Conventions – Camel, Snake, Kebab, and Pascal Case Explained", Free Code Camp
- "PEP 8 - Style Guide for Python Code", Guido van Rossum
- "C# Coding Conventions", Microsoft
- "Google TypeScript Style Guide", Google