alltools.one
Programming
2026-02-25
9 min
alltools.one Team
naming-conventionsprogrammingcamelcasesnake-casecoding-style

Convenções de Nomenclatura em Programação — camelCase, snake_case e Além

Abre um código-fonte pela primeira vez e vê getUserName, get_user_name e GetUserName tudo no mesmo ficheiro. Imediatamente, sabe que algo correu mal. As convenções de nomenclatura são uma daquelas coisas que parecem triviais até trabalhar em equipa — aí tornam-se essenciais.

A nomenclatura consistente não é uma questão de preferência pessoal. Trata-se de tornar o código legível para a próxima pessoa que lhe tocar, que muitas vezes é o próprio daqui a seis meses.

Por Que as Convenções de Nomenclatura Importam

Três coisas se desmoronam quando um projeto não tem nomenclatura consistente:

  • A legibilidade sofre — Quando os estilos de variáveis mudam a cada poucas linhas, o seu cérebro desperdiça ciclos a analisar o formato em vez de compreender a lógica
  • A colaboração da equipa fragmenta-se — Os pull requests tornam-se campos de batalha sobre estilo em vez de conteúdo. A integração de novos programadores demora mais porque não há um padrão previsível
  • As ferramentas deixam de funcionar corretamente — Os linters, autocompletar, geradores de código e ferramentas de refatorização dependem de padrões de nomenclatura previsíveis

A convenção que escolhe importa muito menos do que escolher uma e mantê-la. Um código-fonte com snake_case consistente em todo o lado é infinitamente melhor do que um que mistura três estilos diferentes.

O Guia Completo de Convenções de Nomenclatura

camelCase

A primeira palavra é minúscula e cada palavra subsequente começa com maiúscula. Sem separadores.

// JavaScript / TypeScript
const userName = "Alice";
let itemCount = 42;
function getUserProfile(userId) {
  return fetchData(`/users/${userId}`);
}

Onde é usado: JavaScript, TypeScript e Java usam camelCase para variáveis, nomes de funções e métodos. Também é o padrão em Swift para variáveis locais e parâmetros de funções.

PascalCase

Cada palavra começa com maiúscula. Também chamado de UpperCamelCase.

// TypeScript / C#
class UserProfile {
  firstName: string;
  lastName: string;
}

interface DatabaseConnection {
  host: string;
  port: number;
}

// Componente React
function NavigationBar({ items }: NavProps) {
  return <nav>{/* ... */}</nav>;
}

Onde é usado: C# usa PascalCase para quase tudo público — classes, métodos, propriedades. TypeScript e JavaScript usam para classes, interfaces, aliases de tipo e enums. React obriga PascalCase para nomes de componentes porque JSX precisa de distinguir componentes de elementos HTML.

No Go, PascalCase tem um significado especial: qualquer identificador que começa com maiúscula é exportado (público).

snake_case

Todas as palavras em minúsculas, separadas por underscores.

# Python
user_name = "Alice"
item_count = 42

def get_user_profile(user_id):
    return fetch_data(f"/users/{user_id}")

class UserProfile:
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

Onde é usado: Python usa snake_case para praticamente tudo exceto nomes de classes. Ruby segue o mesmo padrão. Rust usa snake_case para variáveis, funções e módulos. Esquemas de base de dados quase universalmente usam snake_case para nomes de tabelas e colunas.

SCREAMING_SNAKE_CASE

Tudo em maiúsculas com underscores. Reservado para constantes e valores que nunca devem mudar.

// Constantes na maioria das linguagens
const MAX_RETRY_COUNT = 3;
const API_BASE_URL = "https://api.example.com";
const DEFAULT_TIMEOUT_MS = 5000;

Onde é usado: Quase todas as linguagens usam SCREAMING_SNAKE_CASE para constantes. O formato todo em maiúsculas é um sinal universal que diz "não reatribua este valor".

kebab-case

Tudo em minúsculas com hífens como separadores.

/* Nomes de classes CSS */
.navigation-bar {
  background-color: #1a1a2e;
}

.user-profile-card {
  border-radius: 8px;
}
# Flags de CLI
npm install --save-dev eslint
git commit --no-verify

Onde é usado: CSS e HTML favorecem fortemente kebab-case. Slugs de URL usam-no. Ferramentas de linha de comandos e flags seguem-no.

dot.case

Palavras separadas por pontos.

// Nomes de pacotes Java
package com.example.userservice.controllers;

import org.springframework.boot.SpringApplication;

Onde é usado: Nomenclatura de pacotes Java, extensões de ficheiros, chaves de propriedades de configuração em Spring Boot e frameworks similares.

Title Case

Cada palavra principal é capitalizada. Palavras menores como "e", "o" e "de" permanecem em minúsculas.

Onde é usado: Cabeçalhos de interface, títulos de páginas, itens de menu, secções de documentação e nomes próprios.

path/case

Palavras separadas por barras, seguindo convenções do sistema de ficheiros ou namespaces.

Onde é usado: Caminhos do sistema de ficheiros, caminhos de módulos, hierarquias de namespaces e estruturas de encaminhamento de URLs.

Tabela de Convenções por Linguagem

LinguagemVariáveis / FunçõesClasses / TiposConstantesFicheiros
JavaScript / TypeScriptcamelCasePascalCaseSCREAMING_SNAKE_CASEkebab-case ou camelCase
Pythonsnake_casePascalCaseSCREAMING_SNAKE_CASEsnake_case
GocamelCase (não exportado)PascalCase (exportado)PascalCase ou ALL_CAPSsnake_case
Rustsnake_casePascalCaseSCREAMING_SNAKE_CASEsnake_case
JavacamelCasePascalCaseSCREAMING_SNAKE_CASEPascalCase
C#camelCase (privado)PascalCase (público)PascalCasePascalCase
Rubysnake_casePascalCaseSCREAMING_SNAKE_CASEsnake_case
CSSkebab-casekebab-case
SQLsnake_case (colunas)MAIÚSCULAS (palavras-chave)snake_case
PHPcamelCasePascalCaseSCREAMING_SNAKE_CASEPascalCase

Erros Comuns e Como Corrigi-los

1. Misturar convenções no mesmo âmbito

// ❌ Inconsistente
const user_name = "Alice";
const itemCount = 42;
const MaxRetries = 3;

// ✅ camelCase consistente
const userName = "Alice";
const itemCount = 42;
const maxRetries = 3;

2. Usar a convenção errada para a linguagem

# ❌ Usar camelCase em Python
def getUserProfile(userId):
    userName = fetchUser(userId)
    return userName

# ✅ Usar snake_case como Python espera
def get_user_profile(user_id):
    user_name = fetch_user(user_id)
    return user_name

3. Abreviaturas e acrónimos

// ❌ Tratamento inconsistente de acrónimos
const XMLParser = new XmlParser();
const htmlToJSON = convert(HTMLString);

// ✅ Tratar acrónimos como palavras
const xmlParser = new XmlParser();
const htmlToJson = convert(htmlString);

4. Nomes booleanos sem prefixos is/has/can

// ❌ Booleano ambíguo
const active = true;

// ✅ Intenção clara do booleano
const isActive = true;

Conversão Automática Entre Convenções

Quando trabalha entre linguagens, converter manualmente as convenções de nomenclatura é tedioso e propenso a erros.

O nosso Conversor de Casos de Texto trata disso automaticamente. Cole qualquer identificador e converta-o entre camelCase, PascalCase, snake_case, kebab-case e mais com um único clique.

Leituras Adicionais


Pronto para converter convenções de nomenclatura automaticamente? Experimente o nosso Conversor de Casos de Texto — cole qualquer identificador e transforme-o entre camelCase, snake_case, PascalCase, kebab-case e mais. Sem registo, sem dados enviados para servidores, completamente grátis.

Published on 2026-02-25
Naming Conventions — camelCase, snake_case Guide | alltools.one