camelCase vs snake_case: Quando usar cada um
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ística | camelCase | snake_case |
|---|---|---|
| Separador | Nenhum (maiúscula) | Underscore (_) |
| Primeira letra | Minúscula | Minúscula |
| Legibilidade | Boa para nomes curtos | Excelente para nomes longos |
| Velocidade de digitação | Mais rápido (sem underscore) | Mais lento (tecla underscore) |
| Comprimento | Mais curto | Mais longo |
Quais linguagens usam qual?
| Convenção | Linguagens / Frameworks |
|---|---|
| camelCase | JavaScript, TypeScript, Java, Swift, Kotlin, Dart, JSON |
| snake_case | Python, 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.