Guia completo de convenções de nomenclatura em programação
A escolha do formato de nomenclatura é uma das primeiras decisões de padronização em qualquer projeto de software. Cada linguagem e comunidade tem suas convenções — seguí-las não é apenas uma questão estética, mas afeta a legibilidade do código, a integração com ferramentas automáticas (linters, formatters, IDEs) e a colaboração em equipe.
Tabela de convenções de nomenclatura por linguagem
| Formato |
Exemplo |
Usado em |
| camelCase |
nomeDoUsuario |
JavaScript (variáveis, funções), Java, Swift, Kotlin |
| PascalCase |
NomeDoUsuario |
Nomes de classes (todas as linguagens), componentes React |
| snake_case |
nome_do_usuario |
Python (variáveis, funções), Ruby, PHP, SQL (colunas) |
| SCREAMING_SNAKE_CASE |
NOME_DO_USUARIO |
Constantes (Python, JS, Java, C/C++) |
| kebab-case |
nome-do-usuario |
CSS classes, URLs, HTML atributos, npm packages |
| UPPER CASE |
NOME DO USUARIO |
SQL keywords, constantes de sistema, siglas |
| lower case |
nome do usuario |
Normalização de texto, processamento NLP |
| Title Case |
Nome Do Usuario |
Títulos de documentos, nomes de produtos |
| Sentence case |
Nome do usuario |
Frases, legendas, textos de UI |
| dot.case |
nome.do.usuario |
Chaves de configuração (Java properties, i18n) |
Quando usar cada formato em JavaScript e TypeScript
No ecossistema JavaScript/TypeScript, as convenções são claras: camelCase para variáveis, parâmetros e funções; PascalCase para classes, interfaces, tipos e componentes React; SCREAMING_SNAKE_CASE para constantes imutáveis; kebab-case para nomes de arquivos e pastas (exceto componentes React que usam PascalCase). O ESLint com as regras certas faz cumprir essas convenções automaticamente.
Perguntas frequentes — Transformar Texto
Como converter camelCase para snake_case em Python?▼
import re; snake = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", camel).lower(). Ou use a biblioteca inflection: import inflection; inflection.underscore("nomeDoUsuario") retorna "nome_do_usuario".
Como transformar texto para slug de URL em JavaScript?▼
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9\s-]/g, "").replace(/[\s-]+/g, "-").trim(). Remove acentos, converte para minúsculas, substitui espaços/caracteres especiais por hífen.
Qual a diferença entre camelCase e PascalCase?▼
camelCase começa com letra minúscula (primeiroLetraMaiuscula). PascalCase (também chamado UpperCamelCase) começa com letra maiúscula (TodosOsInícios). Em JavaScript: variáveis e funções usam camelCase; classes e constructores usam PascalCase.
Como remover acentos de texto em JavaScript?▼
str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""). O método normalize("NFD") decompõe caracteres acentuados em letra base + acento (ex: "ã" → "a" + combining tilde). O replace remove os acentos (combinando diacríticos no range Unicode U+0300 a U+036F).
Como contar palavras e caracteres em um texto?▼
Palavras: texto.trim().split(/\s+/).filter(w=>w.length).length. Caracteres com espaço: texto.length. Sem espaço: texto.replace(/\s/g,"").length. Linhas: texto.split("\n").length.
O que é Case-sensitivity e como afeta banco de dados?▼
Bancos como MySQL no Windows são case-insensitive por padrão (Nome = nome = NOME). No Linux, MySQL é case-sensitive. PostgreSQL é case-sensitive por padrão para strings, mas case-insensitive para identificadores (nomes de tabela/coluna sem aspas). Isso causa bugs difíceis de diagnosticar ao mover entre ambientes.
Como padronizar nomenclatura em projetos legados?▼
Use ferramentas de rename em massa: IDEs como IntelliJ e VS Code têm refactoring de rename que atualiza todas as referências. Para renomear arquivos em lote: scripts shell com rename (Linux) ou PowerShell Rename-Item (Windows). Faça em commits separados para facilitar code review.
Qual o impacto da nomenclatura na indexação do Google?▼
Para URLs (slugs), o Google prefere palavras separadas por hífen: /como-transformar-texto é melhor que /comoTransformarTexto ou /como_transformar_texto. Hífens são tratados como separadores de palavras; underscores são tratados como parte da palavra. Use sempre kebab-case em URLs públicas.