WikiPlus

camelCase, snake_case e kebab-case: convenções de nomenclatura em programação

Uma das decisões mais básicas e mais impactantes na qualidade do código é a consistência na nomenclatura de variáveis, funções e classes. Misturar camelCase com snake_case no mesmo arquivo, ou usar PascalCase onde deveria ser kebab-case, são infrações de estilo que prejudicam a legibilidade do código e criam atrito na colaboração de equipes. O Conversor de Caixa da WikiPlus permite converter textos entre os principais estilos de nomenclatura utilizados em programação, facilitando padronização e refatoração de código.

Os principais estilos de nomenclatura e onde cada um é usado

Cada linguagem e contexto de programação tem convenções estabelecidas. camelCase (minhaVariavel, calculaImposto): padrão para variáveis e funções em JavaScript, TypeScript, Java, Swift e Objective-C. PascalCase (MinhaVariavel, CalculaImposto): padrão para classes em praticamente todas as linguagens orientadas a objeto. Em React, componentes usam PascalCase (UserCard, NavMenu). snake_case (minha_variavel, calcula_imposto): padrão para variáveis e funções em Python, Ruby, Rust (para funções) e bancos de dados SQL. SCREAMING_SNAKE_CASE (MINHA_CONSTANTE, TAXA_IMPOSTO): padrão para constantes em muitas linguagens (Python, JavaScript). kebab-case (minha-classe, calcula-imposto): padrão para classes CSS, atributos HTML personalizados e URLs. Não é válido como identificador em código JavaScript ou Python (o hífen é interpretado como subtração). dot.case (minha.variavel): usado em algumas configurações e Java property files.

Quando a convenção de nomenclatura errada causa bugs

Além de ser uma questão estética, usar o estilo de nomenclatura errado pode causar problemas reais. Em JavaScript, uma variável chamada minha_variavel é válida mas vai contra as convenções de linting como ESLint com regra camelcase, que emitirá avisos ou erros. Em Python, variáveis em camelCase são tecnicamente válidas mas vão contra o PEP 8, e ferramentas de análise estática como pylint e flake8 reportarão violações. Em CSS, seletores como .minhaClasse não são inválidos mas são incomuns — a convenção é kebab-case. O pior caso é quando convenções são misturadas inconsistentemente no mesmo projeto: minhaFuncao() e minha_outra_funcao() no mesmo arquivo criam confusão sobre qual padrão seguir. Linters e formatadores automáticos como ESLint, Black (Python) e Prettier ajudam a manter consistência automaticamente.

Convertendo entre estilos de nomenclatura: casos práticos

O Conversor de Caixa da WikiPlus é útil em vários cenários de refatoração. Migrar codebase de Java para Python: converter todos os nomes de método de camelCase para snake_case. Criar slugs de URL a partir de nomes de função: converter camelCase ou PascalCase para kebab-case. Gerar nomes de variáveis a partir de rótulos de banco de dados: colunas SQL em snake_case para variáveis JavaScript em camelCase. Criar atributos CSS a partir de nomes de componentes React. Para conversões em grande escala (muitos arquivos), considere usar ferramentas de refatoração do IDE (VS Code, JetBrains) ou scripts de sed/awk que fazem substituições em múltiplos arquivos simultaneamente. O Conversor de Caixa da WikiPlus é ideal para conversões manuais rápidas de nomes individuais ou listas pequenas de identificadores.

Convenções de nomenclatura em APIs e banco de dados

APIs e bancos de dados frequentemente usam convenções diferentes das linguagens de programação cliente. APIs REST frequentemente usam snake_case nos JSONs de resposta (user_name, created_at) mas são consumidas em JavaScript (camelCase). Isso cria o problema de conversão automática ou manual entre os dois estilos. Bibliotecas como axios podem ter configuração para converter automaticamente, e pacotes como humps fazem conversão automática entre camelCase e snake_case. Bancos de dados relacionais usam snake_case por convenção (user_profiles, product_categories). ORMs como Sequelize, TypeORM e Prisma fazem mapeamento automático entre snake_case do banco e camelCase do JavaScript. Para GraphQL, schemas usam camelCase para campos e PascalCase para tipos. Entender essas fronteiras de convenção e saber onde usar o Conversor de Caixa da WikiPlus para preparar identificadores corretos é uma habilidade prática importante.

Perguntas frequentes

Por que JavaScript usa camelCase em vez de snake_case?
É uma convenção histórica derivada da linguagem Java, da qual JavaScript se inspirou para nomenclaturas. Não há razão técnica que impeça snake_case em JavaScript — é tecnicamente válido. Mas as convenções estabelecidas (reforçadas por linters como ESLint) padronizaram camelCase como o estilo dominante no ecossistema JavaScript.
kebab-case pode ser usado como nome de variável em JavaScript?
Não. O hífen em JavaScript é o operador de subtração, então minha-variavel seria interpretado como minha menos variavel. Por isso kebab-case é reservado para CSS, HTML e URLs — contextos onde o hífen não é um operador. Em JavaScript, use camelCase ou snake_case para variáveis.
Como o Python lida com nomes em camelCase importados de APIs?
Python aceita camelCase como identificador válido, mas vai contra o PEP 8. Para código Python que consome APIs com camelCase, o padrão é converter manualmente (ou via biblioteca como humps/pyhumps) para snake_case dentro do código Python, mantendo a consistência interna independente da API externa.