No snake case os termos são escritos com underline "_" para separar as palavras e não utiliza espaços, acentos ou outros pontos. É uma convenção de nomenclatura normalmente usada em computação, para nomes de variáveis, métodos e títulos de arquivos.
Por exemplo: frase_escrita_com_snake_case
A maioria das linguagens não permitem o uso de espaços nos nomes de variáveis, métodos, atributos, constantes... O que dificulta a leitura humana, por isso são usados padrões para facilitar o reconhecimento de palavras.
No caso snake case é um desses padrões, mas existem outros como camelCase ou kebab-case.
Normalmente por convenção em linguagens e frameworks é usado assim, não
que seja obrigatório ou nativo, ele serve mais para ajudar na
identificação dos programadores e não na interpretação da máquina.
Existe a variação que é chamada de screaming snake case onde se usa apenas letras maiuscula. Então snake_case é usado com caixa baixa e SCREAMING_SNAKE_CASE em caixa alta.
Esse padrão é mais utilizado na linguagem Python (o que tem tudo a ver). Também é muito utilizado em banco de dados.
Por convenção é mais usado snake case em:
Nome de campos, tabelas e funções de banco de dados.
Em constantes é comumente usado SCREAMING_SNAKE_CASE, por exemplo na liguagem Python e Java esse é o padrão.
Na linguagem Python também é usado snake_case em variáveis e métodos, com letras minusculas.
Snake case é bem antigo usado desda década de 60. Vem do início do C, porém recebeu esse nome mais tarde.
A sua origem não é bem conhecida. O termo snake_case foi visto pela primeira vez na comunidade Ruby em 2004, usado por Gavin Kistner. No entanto, o ex-engenheiro da Intel Jack Dahlgren afirmou que estava usando o termo internamente na Intel em 2002. Então é possível que ele tenha sido usado de forma independente em mais de uma comunidade.
A denominação snake case provavelmente foi dada por causa das palavras serem escritas usando o sublinhado no lugar do espaço, o que parece uma cobra rastejando.
Também é usada na literatura geral o termo underscore_case para se referenciar palavras separadas com underline.
O guia de estilo da linguagem Python se refere a ela como "lower_case_with_underscores" ou seja "letra minuscula com sublinhado" em português.
Veja mais em
O que são boas práticas de linguagens?
Por que usar camelCase ou snake_case?
O que é case sensitive?
O que é kebab-case?
O que são palavras reservadas?
Como converter CamelCase para snake_case em PHP?
Por exemplo: fraseEscritaComCamelCase
A denominação camel case provavelmente foi dada porque os termos escritos ficam parecidos com corcovas de camelos nas letras maiúsculas.
Esse padrão é normalmente usado em linguagens que utilizam orientação a objetos POO como: PHP, javaScript, Java, C#, Ruby, Pyton. Normalmente por convenção em linguagens e frameworks é usado assim, não que seja obrigatório ou nativo, ele serve mais para ajudar na identificação dos programadores e não na interpretação da máquina.
Existe uma variação, dentro do camelCase quando a primeira palavra começa com letra maiúscula ela é chamada de upperCamelCase e quando minuscula de lowerCamelCase.
Na programação é usado começando com letra maiúscula para denominar classes e minuscula para métodos e variáveis ou atributos. Só para lembrar, o que varia é a letra inicial do termo, as outras palavras sempre começam com a letra maiúscula.
Existem outras formas de serem chamadas como: PascalCase, Medial capitals, InterCaps, bumpyCaps, NerdCaps, camelBack, capitalizedWords, mizedCase, compoundNames, Embedded Capitals, wikiWord, humpBack. Sendo o case e o caps substituídos um pelo outro constantemente.
Veja mais em:
Os exemplos abaixo são os mais usados, mas existem várias outras nomenclaturas para eles.
Tabela das linguagens avaliadas
|
Variável |
Constante |
Método |
Classe |
PHP |
|
|
|
PascalCase |
Java Script |
camelCase |
camelCase |
camelCase |
PascalCase |
Python |
snake_case |
SCREAMING_SNAKE_CASE |
snake_case |
PascalCase |
Java |
camelCase |
SCREAMING_SNAKE_CASE |
camelCase |
PascalCase |
Para formar essa tabela foi chamado o upperCamelCase como PascalCase para facilitar a escrita. Métodos e funções são denominações diferentes da mesma coisa, por isso foi usado apenas o primeiro. Assim como variável, atributo e parâmetro.
Para padronização em PHP existe as PSR, mas elas não fazem essa definição para as variáveis, apenas nas classes pedem que seja com PascalCase e também para seguir a definição no escopo de projeto, ou seja o que começar usando ou for definido use em todo o projeto.
Quando é classe usa upperCamelCase, quando é função ou método, variável ou constante usa camelCase.
De acordo com as boas práticas de Python PEP-8 é recomendado usar snake_case em variáveis e funções, SCREAMING_SNAKE_CASE em constantes e camel case nas classes.
Clare que Python deveria ser baseado em snake_case.
Usa camelCase para variáveis, atributos e métodos, PascalCase para classes, enum e interfaces, e SCREAMING_SNAKE_CASE para constantes.
Essa definição foi tirada do Java Secure Coding Guidelines.
Veja mais em?
O que é snake_case?
O que são boas práticas de linguagens?