Convenções de nomenclatura: Camel, Pascal, Kebab e Snake case

Convenções de nomenclatura: Camel, Pascal, Kebab e Snake case
Akemi  Alice
Akemi Alice

Compartilhe

Introdução

Se você estuda programação, provavelmente se vê a todo momento nomeando coisas, como variáveis, classes, métodos, funções e muito mais. Mas, afinal, será que existe alguma convenção para ajudar nesse processo de nomeação?

O gif apresenta a Dee Dee, personagem do desenho “O Laboratório de Dexter", usando um vestido rosa, cabelos amarelos, boca aberta sorrindo com a língua para fora e de frente ao teclado digitando rapidamente.

Há diversas maneiras de aplicar boas práticas no seu código, uma delas é a convenção de nomenclatura, que são recomendações para nomear identificadores ajudando a tornar seu código mais limpo e fácil de compreender, mantendo um padrão para o leitor e até mesmo podendo fornecer informações sobre a função do identificador.

Além disso, podemos encontrar outras linguagens, como Go, que dependem muito de você conhecer a diferença entre os casos de uso, pois a convenção utilizada no nome possui um efeito semântico também.

Agora, vamos conhecer os quatro tipos mais comuns de convenções de nomenclatura para combinar palavras em uma única string. Bora lá?

Camel case

Camel case deve começar com a primeira letra minúscula e a primeira letra de cada nova palavra subsequente maiúscula:

coisasParaFazer

idadeDoAmigo

valorFinal

Pascal case

Também conhecido como “upper camel case” ou “capital case”, pascal case combina palavras colocando todas com a primeira letra maiúscula:

CoisasParaFazer

IdadeDoAmigo

ValorFinal

Snake case

Em snake case, conhecido também como “underscore case”, utilizamos underline no lugar do espaço para separar as palavras. Quando o snake case está em caixa alta, ele é chamado de “screaming snake case”:

coisas_para_fazer

idade_do_amigo

valor_final

PRIMEIRO_NOME

LISTA_INICIAL

Kebab case

Kebab case utiliza o traço para combinar as palavras. Quando o kebab case está em caixa alta, ele é chamado de “screaming kebab case”:

coisas-para-fazer

idade-do-amigo

valor-final

PRIMEIRO-NOME

LISTA-INICIAL

Convenções Java

O java possui o Java Secure Coding Guidelines, uma documentação disponibilizada pela Oracle, baseada nos padrões de codificação apresentados no Java Language Specification. É importante ressaltar que essas convenções de código Java foram escritas em 1999 e não foram atualizadas desde então, portanto algumas informações contidas no documento podem não estar atualizadas. As convenções mais comuns são:

  • camelCase para variáveis, atributos e métodos;
  • PascalCase para classes, enum e interfaces;
  • SCREAMING_SNAKE_CASE para constantes.
    public class Pessoa{
        public static void main(String[] args) {

            String primeiroNome = "Maria";
                int idade = 22;
                double alturaAtual = 1.65;
                final String MENSAGEM_PADRAO = "Olá";
            }
        }

Convenções JavaScript

  • camelCase para variáveis, constantes, funções e métodos;
  • PascalCase para classes.
class ClienteBanco {  
    constructor(primeiroNome, cpf) { 
      this.primeiroNome = primeiroNome;
      this.cpf = cpf;
    }

  exibirPrimeiroNome(){
     console.log(this.primeiroNome);
    }
}

  var clienteUm = new ClienteBanco('Maria', 150);
  var clienteDois = new ClienteBanco('João', 70);

Convenções Python

O python possui um guia de estilos e estruturação que fornece convenções de codificação para o código, o PEP8. Isso não significa que seu código não funcionará se não seguir as diretrizes, no entanto, segundo o PEP 20 -- The Zen of Python, a legibilidade conta.

  • snake_case para variáveis, funções e métodos;
  • PascalCase para classes;
  • SCREAMING_SNAKE_CASE para constantes.
class Pessoa:
    def __init__(self, nome, cpf):
        self.nome = nome
        self.cpf = cpf

        def exibir_primeiro_nome(self):
        print(self.nome)

        pessoa_um = Pessoa('Alice', '123456789')

Convenções GO

Os nomes na linguagem Go tem um efeito semântico, a visibilidade de um identificador fora de um pacote é determinada se o nome inicia com letra maiúscula ou minúscula, portanto devemos nos atentar com as convenções utilizadas. O Go também possui uma documentação com ótimas dicas para escrever um código claro, o Effective Go.

  • PascalCase para exportar (acessível fora do pacote);
  • camelCase para internos (não é exportado).
package nome

type ExportedStruct {
    unexportedField string
}

Convenções Ruby

A linguagem Ruby utiliza o Ruby Style Guide, um guia de estilo que te dá boas dicas para a escrita do código.

  • PascalCase para classes e módulos;
  • snake_case para métodos, variáveis, nomear arquivos e diretórios;
  • SCREAMING_SNAKE_CASE para constantes.
class Pessoa

    def initialize(primeiro_nome, cpf)    
        @primeiro_nome = primeiro_nome
        @cpf = cpf
    end

    def exibe_primeiro_nome
        @primeiro_nome
    end
end

pessoa_um = Pessoa.new('Alice', 123456789)

Tabela

Para auxiliar, confira essa tabela que mostra as principais convenções de nomenclatura que abordamos nessa leitura.

ConvençãoExemplo
Camel caseprimeiroNomePessoa
Pascal casePrimeiroNomePessoa
Snake caseprimeiro_nome_pessoa
Screaming snake casePRIMEIRO_NOME_PESSOA
Kebab caseprimeiro-nome-pessoa
Screaming kebab casePRIMEIRO-NOME-PESSOA

Conclusão

Nesse artigo, vimos que cada linguagem possui suas próprias convenções de nomenclatura. Inclusive, algumas empresas e projetos adotam um padrão para seguir, como por exemplo o Google, que utiliza o Google Style Guides, um guia de estilo para auxiliar os desenvolvedores que trabalham em seus projetos de código aberto.

As particularidades de cada linguagem de programação pode tornar uma convenção mais útil do que a outra linguagem, por isso fique atento às convenções utilizadas no seu projeto e mantenha consistência com a escolhida.

E aí, que tal aplicar essas boas práticas no seu código? Bons estudos e até a próxima!

Para conhecer mais:

Akemi  Alice
Akemi Alice

Estudante de Informática e Scuba Team na Alura com foco em Back-End.

Veja outros artigos sobre Programação