Executando verificação de segurança...
20

Cases Existentes e Suas Linguagens Preferidas

Se você está no mundo do desenvolvimento, entende que precisará a todo momento nomear coisas, como variáveis, classes, métodos, funções e etc. A ideia deste artigo é te apoiar nas convenções mais comuns quando o assunto é nomenclatura!

Na programação, geralmente removemos os espaços entre as palavras porque programas de diferentes tipos reservam o caractere de espaço (' ') para fins especiais e uma linguagem de programação típica trataria cada palavra como um conceito separado.

Para resolver este problema, é removido os espaços ou substituído para caracteres que a linguagem entende e para cada caso, existe um padrão com o nome devido.

Tabela Rápida

O objetivo dessa tabela é a ajudar você que deseja apenas saber o nome de algum case de forma rápida.

ConvençãoOutros NomesExemploUso em Linguagem
Camel CaseDromedary CasecamelCaseVariáveis no Java ou C#
Pascal CaseCapital Case ou Capital Camel Case ou Upper Camel CasePascalCaseClasses no Java ou Python
Snake CaseUnderscore Case ou C Casesnake_caseVariáveis em Python ou PHP
Constant CaseScreaming Snake Case ou Macro Case ou Upper Case ou Scream CaseCONSTANT_CASEConstantes em Python ou C
Brochette Case-Brochette_Case-
Kebab Casecaterpillar-case ou dash-case ou hyphen-case ou lisp-case ou spinal-case ou css-case ou slug-casekebab-casePropriedades CSS ou HTML
Screaming Kebab CaseCobol Case ou Train CaseSCREAMING-KEBAB-CASE-
Flat CaseMumble CaseflatcasePackages no Java

camelCase ou dromedaryCase

O Camel Case começa com a primeira palavra tendo a primeira letra minúscula e a cada nova palavra, a primeira letra será maiúscula e assim, remove os espaços das palavras:

coisasParaFazer

idadeDoAmigo

valorFinal

PascalCase ou Capital Case ou CapitalCamelCase ou Upper Camel Case

Também é conhecido como Upper Camel Case ou Capital Case, o pascal case concatena as palavras com todas tendo a primeira letra maiúscula:

CoisasParaFazer

IdadeDoAmigo

ValorFinal

snake_case ou underscore_case ou c_case

Em Snake Case, conhecido também como Underscore case ou C Case, utilizamos o underline "_" no lugar do espaço para separar as palavras:

coisas_para_fazer

idade_do_amigo

valor_final

CONSTANT_CASE ou SCREAMING_SNAKE_CASE ou MACRO_CASE ou UPPER_CASE ou SCREAM_CASE

Constant Case ou Screaming Snake Case (quando o snake case está em caixa alta) é a separação de duas ou mais palavras por underscore com todas as letras em caixa alta:

PRIMEIRO_NOME

LISTA_INICIAL

Brochette_Case

O Brochette Case é uma convenção de nomenclatura em que o nome é formado por várias palavras unidas como uma única palavra separada por underscore "_", mas a primeira letra de cada palavra é maiúscula.

Primeiro_Nome

Lista_Inicial

kebab-case ou caterpillar-case ou dash-case ou hyphen-case ou lisp-case ou spinal-case ou css-case ou slug-case

O Kebab Case usa traço "-" para concatenar as palavras.

coisas-para-fazer

idade-do-amigo

valor-final

Obs.: Muitas linguagens de programação acaba não utilizando este padrão por causa do uso do traço, que muitas vezes tem seu uso como sinal menos, portanto tome muito cuidado ao utilizar este padrão.

Obs.: O Kebab Case é excelente para nomes de arquivos, URIs ou algo desse tipo, onde o espaçamento entre as palavras de um arquivo ou caminho é importante para ler, mas um sublinhado seria ofuscado pela renderização da fonte, como com um URI.

SCREAMING-KEBAB-CASE ou COBOL-CASE ou TRAIN-CASE

O Screaming Kebab Case pe o kebab-case em caixa alta:

PRIMEIRO-NOME

LISTA-INICIAL

flatcase ou mumblecase

Neste case, todas as letras são unidas e em caixa baixa.

minhavida

medelike

sosucessinho

Cases Mais Comuns Para As Linguagens

Python

  • 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')

Java

  • 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á";
    }
}

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);

Go

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

type ExportedStruct {
    unexportedField string
}

Ruby

  • 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)

SQL

  • snake_case para os objetos do banco de dados, como tabelas, colunas, primary e foreign keys, stored procedures, functions, views;
CREATE TABLE users (
    id primary key,
    name varchar,
    last_name varchar
);

SELECT last_name FROM users WHERE id = 1;

Outros Cases

Existem ainda outros cases que não são específicos para nomenclatura de variáveis, constantes, classes, funções, métodos, etc... mas são relacionados aos textos.

Confira este site para fazer as conversões destes cases -> [Case Converter].

Upper Case

Converte todas as letras em caixa alta (letras maiúscula).
De: Me dê tabcoins por favor 🤗 Para: ME DÊ TABCOINS POR FAVOR 🤗

Lower Case

Converte todas as letras em caixa baixa (letras minúscula).
De: ME DÊ TABCOINS POR FAVOR 😊 Para: me dê tabcoins por favor 😊

Proper Case

Converte o texto para que cada palavra tenha sua primeira letra maiúscula e as demais letras minúscula.
De: me dê tabcoins por favor 😎 Para: Me Dê Tabcoins Por Favor 😎

Sentence Case

Capitaliza apenas a primeira letra de cada sentença.
De: Me Dê Tabcoins Por Favor 🤩 Para: Me dê tabcoins por favor 🤩

Motivo para Ação

Se você chegou até aqui, eu acredito que tem grande chance de ter gostado do conteúdo! Então peço que deixe um tabcoin e algum comentário com sugestões de melhoria para este artigo e para as futuras escritas também. 😉

muitoObrigadoPorLer

MuitoObrigadoPorLer

muito_obrigado_por_ler

MUITO_OBRIGADO_POR_LER

muito-obrigado-por-ler

MUITO-OBRIGADO-POR-LER

Referências

Carregando publicação patrocinada...
2

Só por curiosidade, eu trouxe um exemplo de linguagem que utiliza o kebab-case. Clojure é um dialeto Lisp que pode ser compilado para a JVM ou para JavaScript (ClojureScript).

Clojure(Script)

  • kebab-case para "variáveis" (símbolos), atributos, constantes e funções;
  • PascalCase para Records (classes).
(defrecord Address [city state])

(defrecord Person [first-name last-name ^Address address])

(defn make-person
 [fname lname city state]
 (->Person fname lname (->Address city state)))

(def person1 (make-person "John" "Doe" "LA" "CA"))

(:first-name person1)
(:city (:address person1))
1

Muito obrigado pela contribuição @marlonhenrys! Com certeza Clojure é uma linguagem muito bonita e que tenho muita curiosidade de em algum momento entender ela melhor!

1

Para mim tem muita utilidade esse artigo;
Quando se programa em muitas linguagens, fica bem difícil lembrar as regras de nomenclatura das menos utilizadas.

1

Oopa Fico muito feliz que tenha gostado este artigo e que ele tenha sido útil para você. Concordo contigo, criei este artigo pensando exatamente nisso, pois existem diversos padrões que precisamos seguir para trazer melhor qualidade para os nossos projetos e essa foi uma das formas que encontrei para relembrar destes padrões. Muito obrigado pelo comentário!