Convenções de nomenclatura na programação: camelCase, PascalCase, snake_case e kebab-case
Escrever código limpo vai muito além de fazê-lo compilar e rodar corretamente. A legibilidade é crucial para a manutenção, colaboração e correção de bugs. Um dos pilares fundamentais da engenharia de software é a adoção de convenções de nomenclatura consistentes para variáveis, funções, classes, colunas de banco de dados e arquivos.
Como caracteres de espaço não são permitidos em identificadores na quase totalidade das linguagens de programação, desenvolvedores utilizam letras maiúsculas ou caracteres separadores para distinguir palavras. Ao longo de décadas de evolução técnica, diversos padrões consolidados tornaram-se referências de mercado, destacando-se camelCase, PascalCase, snake_case, kebab-case e SCREAMING_SNAKE_CASE.
Guias de Estilo: Diferentes linguagens e comunidades possuem seus próprios padrões estabelecidos. Usar a capitalização correta faz com que seu código pareça nativo do ecossistema daquela linguagem e acelera o alinhamento de equipes.
Os principais formatos de case
1. camelCase (lowerCamelCase)
No padrão camelCase, a primeira palavra inicia com letra minúscula e cada palavra subsequente inicia com letra maiúscula, sem espaços ou símbolos separadores. A alternância de altura das letras lembra as corcovas de um camelo.
- Exemplos: nomeDoUsuario, calcularDuracaoTotal, estaAtivo, processarRequisicaoHttp
- Uso padrão: Nomes de variáveis, parâmetros e funções em JavaScript, TypeScript, Java, C#, Swift e Kotlin.
2. PascalCase (UpperCamelCase)
O PascalCase segue a mesma lógica de capitalização do camelCase, com a distinção de que a primeiríssima letra também é sempre maiúscula. Recebeu esse nome pela popularização na linguagem Pascal.
- Exemplos: PerfilDoUsuario, CompressorDeImagem, LayoutLocalizado, ConexaoBancoDados
- Uso padrão: Nomes de classes, interfaces, tipos, enums e namespaces em C#, Java, Python e componentes em React.
3. snake_case
No snake_case, todas as letras são minúsculas e as palavras são unidas por um sublinhado (_). Esse padrão proporciona alta legibilidade visual, pois o caractere emula o espaçamento natural entre palavras.
- Exemplos: nome_do_usuario, conexao_banco_dados, calcular_duracao_total, data_criacao
- Uso padrão: Funções, variáveis e módulos em Python (PEP 8), Ruby, Rust, C e nomes de colunas em bancos relacionais como PostgreSQL e MySQL.
4. kebab-case
No kebab-case, todas as letras são minúsculas e as palavras são separadas por traços (-). O nome faz alusão aos pedaços de carne e vegetais dispostos em um espeto de churrasco.
- Exemplos: nome-do-usuario, conversor-de-caracteres, painel-principal, botao-confirmar
- Uso padrão: Slugs de URLs, rotas de APIs REST, classes CSS, atributos HTML personalizados e nomes de pacotes npm.
5. SCREAMING_SNAKE_CASE
Também conhecido como CONSTANT_CASE, esse padrão escreve todas as letras em maiúsculas com separação por sublinhados.
- Exemplos: LIMITE_MAXIMO_TENTATIVAS, TEMPO_LIMITE_SEGUNDOS, CHAVE_SECRETA_API
- Uso padrão: Constantes globais, variáveis de ambiente e configurações imutáveis na maioria das linguagens.
Tabela comparativa dos padrões
| Convenção | Primeira Letra | Separador | Uso Principal | Exemplo |
|---|---|---|---|---|
| camelCase | Minúscula | Nenhum | Variáveis e funções em JS, TS, Java | totalUsuariosAtivos |
| PascalCase | Maiúscula | Nenhum | Classes, Interfaces e Componentes React | CartaoPerfilUsuario |
| snake_case | Minúscula | Sublinhado (_) | Python, Rust e Banco de Dados | total_usuarios_ativos |
| kebab-case | Minúscula | Traço (-) | URLs, classes CSS e nomes de arquivos | total-usuarios-ativos |
| SCREAMING_SNAKE | Maiúscula | Sublinhado (_) | Constantes globais e Variáveis de Ambiente | LIMITE_MAXIMO_CONEXOES |
Por que o kebab-case não é permitido em nomes de variáveis?
Uma dúvida muito comum entre quem está aprendendo a programar é por que não podemos usar kebab-case em variáveis de JavaScript, Python ou Java. A resposta está na análise sintática dos compiladores e interpretadores: em linguagens de programação, o caractere de traço (-) é reservado como o operador matemático de subtração.
Quando o analisador léxico encontra uma expressão como primeiro-nome, ele interpreta a instrução como primeiro menos nome. Por esse motivo, o kebab-case é restrito a contextos onde não há colisão com operações aritméticas, como classes CSS, atributos de tags HTML e URLs da web.
Boas práticas com siglas em identificadores
Quando um identificador contém siglas como HTTP, URL, CPF ou ID, diretrizes modernas de estilo recomendam tratar a sigla como uma palavra regular:
- camelCase: Prefira
processarUrlHttpeusuarioIdaprocessarURLHTTPeusuarioID. Tratar siglas como palavras convencionais evita blocos confusos de letras maiúsculas consecutivas. - PascalCase: Prefira
GerenciadorConexaoHttpaGerenciadorConexaoHTTPpara manter uma separação visual limpa entre as palavras. - snake_case: No snake_case, siglas permanecem em minúsculas separadas por sublinhados:
processar_url_httpeusuario_id.
Converta formatos de texto instantaneamente
Ao transitar dados entre schemas de bancos de dados (snake_case), contratos de APIs REST (camelCase) e componentes React (PascalCase), renomear dezenas de campos manualmente é repetitivo e propenso a erros. Você pode usar nosso Conversor de Case gratuito para alternar textos entre maiúsculas, minúsculas, camelCase, PascalCase, snake_case e kebab-case instantaneamente, com todo o processamento local no seu navegador e total privacidade.
Pronto para converter estilos de texto? Acessar o Conversor de Case