camelCase vs snake_case: guia das convenções de nomenclatura no código
Publicado a 20/06/2025 · 3 min de leitura · Ferramentas para programadores
Daniel Okonkwo — Programador front-end e redator de Tecnologia na OneKitly
Desempenho web · Formatos de ficheiro
Verificado a partir de 2 fontes
camelCase junta as palavras sem espaços e coloca em maiúscula cada palavra exceto a primeira, como firstName. snake_case usa palavras minúsculas unidas por sublinhados, como first_name. PascalCase coloca em maiúscula cada palavra, como FirstName, e kebab-case une palavras minúsculas com hífens, como first-name. A escolha certa é ditada pela sua linguagem e o seu guia de estilo: camelCase para variáveis JavaScript, snake_case para Python, PascalCase para nomes de classes, kebab-case para URLs e CSS.
camelCase, snake_case, PascalCase e kebab-case explicados: como cada um se apresenta, onde é a convenção e como escolher um de forma coerente.
As quatro convenções num relance
As quatro resolvem o mesmo problema: os identificadores não podem conter espaços, por isso os nomes de várias palavras precisam de uma regra de junção. camelCase escreve myUserName, com maiúscula em cada palavra exceto a primeira. PascalCase, também chamado UpperCamelCase, coloca também a primeira palavra em maiúscula, dando MyUserName. snake_case coloca tudo em minúscula e une com sublinhados, my_user_name. kebab-case faz o mesmo com hífens, my-user-name.
As diferenças são puramente estilísticas para um humano, mas não para uma máquina: myUserName e my_user_name são identificadores diferentes. Por isso converter entre convenções tem de ser deliberado, e por isso um desencontro entre o nome de uma coluna de base de dados e o que o seu código espera é uma fonte clássica de erros.
Onde cada convenção é a norma
As convenções são definidas pelas comunidades das linguagens. JavaScript e Java usam camelCase para variáveis e funções, e PascalCase para classes e tipos. Python e Ruby preferem snake_case para variáveis e funções, reservando PascalCase para classes. C# usa PascalCase para métodos e propriedades. kebab-case é raro no código porque os hífens se leem como sinais de menos, mas domina nas URLs, nos nomes de classe CSS e nos atributos HTML.
Um caso especial é a constante. Muitas linguagens escrevem as constantes de compilação em SCREAMING_SNAKE_CASE, um snake_case todo em maiúsculas como MAX_RETRIES. Isto sinaliza de relance que o valor nunca deve mudar, e é um dos poucos lugares onde o snake_case em maiúsculas é idiomático.
Escolher e converter de forma coerente
A regra mais importante é a coerência dentro de uma base de código. Não misture firstName e first_name para o mesmo conceito. Quando atravessa uma fronteira, como ler colunas snake_case de uma base de dados para uma aplicação em camelCase, converta na fronteira, num lugar claramente nomeado, em vez de espalhar conversões por todo o lado.
A conversão é mecânica: divida o nome em palavras e volte a uni-las com a regra de destino. O único ponto delicado é a divisão, porque camelCase não tem separador. Um conversor deteta os limites de palavra em cada maiúscula, enquanto snake_case e kebab-case se dividem pelo seu delimitador, permitindo mover um nome entre dois estilos de forma fiável.
Perguntas frequentes
- Qual é a diferença entre camelCase e PascalCase?
- Apenas a primeira letra. camelCase começa em minúscula (userName); PascalCase coloca também a primeira palavra em maiúscula (UserName). PascalCase também se chama UpperCamelCase.
- Porque é que kebab-case não é usado para nomes de variáveis?
- Porque a maioria das linguagens lê o hífen como operador de subtração, portanto first-name seria interpretado como first menos name. É seguro em URLs, CSS e HTML, onde o hífen é apenas um caractere.
- Que convenção devo usar para os campos JSON de uma API REST?
- Não há uma regra única, mas camelCase e snake_case são ambos comuns. Escolha um, documente-o e mantenha todos os campos da API coerentes para que os clientes possam confiar nele.
- Existe um nome para MAIÚSCULAS com sublinhados?
- Sim, chama-se SCREAMING_SNAKE_CASE, ou snake case maiúsculo. É a convenção comum para constantes, como MAX_SIZE ou API_KEY.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Fontes
Detetaste um erro neste artigo?