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.