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çãoPrimeira LetraSeparadorUso PrincipalExemplo
camelCaseMinúsculaNenhumVariáveis e funções em JS, TS, JavatotalUsuariosAtivos
PascalCaseMaiúsculaNenhumClasses, Interfaces e Componentes ReactCartaoPerfilUsuario
snake_caseMinúsculaSublinhado (_)Python, Rust e Banco de Dadostotal_usuarios_ativos
kebab-caseMinúsculaTraço (-)URLs, classes CSS e nomes de arquivostotal-usuarios-ativos
SCREAMING_SNAKEMaiúsculaSublinhado (_)Constantes globais e Variáveis de AmbienteLIMITE_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 processarUrlHttp e usuarioId a processarURLHTTP e usuarioID. Tratar siglas como palavras convencionais evita blocos confusos de letras maiúsculas consecutivas.
  • PascalCase: Prefira GerenciadorConexaoHttp a GerenciadorConexaoHTTP para manter uma separação visual limpa entre as palavras.
  • snake_case: No snake_case, siglas permanecem em minúsculas separadas por sublinhados: processar_url_http e usuario_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