camelCase vs snake_case: Quando usar cada um

5 min de leitura

camelCase e snake_case são as duas convenções de nomes mais comuns na programação. Escolher a correta depende da linguagem, framework e contexto.

O que é camelCase?

camelCase une palavras sem separador, capitalizando a primeira letra de cada palavra exceto a primeira: myVariableName, getUserById, totalItemCount.

O que é snake_case?

snake_case separa palavras com underscores em minúsculas: my_variable_name, get_user_by_id, total_item_count.

Comparação direta

CaracterísticacamelCasesnake_case
SeparadorNenhum (maiúscula)Underscore (_)
Primeira letraMinúsculaMinúscula
LegibilidadeBoa para nomes curtosExcelente para nomes longos
Velocidade de digitaçãoMais rápido (sem underscore)Mais lento (tecla underscore)
ComprimentoMais curtoMais longo

Quais linguagens usam qual?

ConvençãoLinguagens / Frameworks
camelCaseJavaScript, TypeScript, Java, Swift, Kotlin, Dart, JSON
snake_casePython, Ruby, Rust, Elixir, PHP (parcialmente), SQL, C (parcialmente)

Quando usar camelCase

  • Variáveis e funções JavaScript ou TypeScript
  • Nomes de métodos e variáveis em Java
  • Chaves de objetos JSON em APIs centradas no frontend
  • Identificadores Swift e Kotlin

Quando usar snake_case

  • Variáveis e funções Python (PEP 8 exige isso)
  • Nomes de métodos e variáveis em Ruby
  • Nomes de tabelas e colunas de banco de dados
  • Campos de API REST para backends Python/Ruby
  • Nomes de variáveis de ambiente (em UPPER_SNAKE_CASE)

Conversão

Use o nosso conversor camelCase ou conversor snake_case, ou experimente o hub de conversão de case para ver todos os formatos de uma vez.

O problema do código misto

A situação mais comum onde os desenvolvedores encontram ambas as convenções é na fronteira entre um backend Python/Ruby (snake_case) e um frontend JavaScript (camelCase). A solução típica é converter as chaves de resposta da API na fronteira usando middleware ou uma função utilitária.

Resumo

Não existe uma convenção universalmente «melhor». Siga o padrão da linguagem ou framework que estiver usando. A consistência dentro do projeto importa muito mais do que qual convenção você escolhe.