Snake case
Snake case se refiere al estilo de escritura en el que cada espacio se reemplaza con un carácter de subrayado (snake_case) y la primera letra de cada palabra se escribe en minúsculas. Es una convención de nomenclatura comúnmente usada en informática, por ejemplo, para nombres de variables y subrutinas, y para nombres de archivos . Un estudio encontró que los lectores pueden reconocer los valores con nomenclatura estilizada con snake case más rápidamente que "Camel case". Sin embargo, "los sujetos fueron entrenados principalmente en el estilo de subrayado", por lo que no se puede eliminar la posibilidad de sesgo. [1]
Historia
El uso de guiones bajos como separadores de palabras se remonta a finales de la década de 1960. Está particularmente asociado con C, lo cual se encuentra en El lenguaje de programación C (1978) y contrasta con pascal case (un tipo de camel case ). Sin embargo, la convención tradicionalmente no tenía un nombre específico: la guía de estilo del lenguaje de programación Python se refiere a ella simplemente como "minúsculas_con_guiones bajos". [2]
Dentro de Usenet, el término snake_case se vio por primera vez en la comunidad de Ruby en 2004, [3] utilizado por Gavin Kistner, escribiendo:
BTW...what *do* you call that naming style? snake_case? That's what I'll call it until someone corrects me.
Sin embargo, el ex ingeniero de Intel, Jack Dahlgren, ha declarado que estaba usando el término internamente en esta empresa (y tal vez en conversaciones con ingenieros de Microsoft) en 2002. [4] Es posible que el término se haya desarrollado independientemente en más de una comunidad.
A partir del año 2015, los nombres para otras convenciones de nomenclatura separadas por delimitadores para múltiples identificadores de palabras no han sido estandarizadas. Sin embargo, algunos términos tienen niveles de uso cada vez mayores, como por ejemplo: lisp-case, kebab-case, SCREAMING_SNAKE_CASE, entre otros.[5][6][7]
Ejemplos
Una lista de lenguajes de programación que convencionalmente usan el snake case.
- ABAP [8]
- Ada, con letras iniciales también en mayúsculas [9]
- C++, Boost [10]
- C, para algunos nombres de tipos en la biblioteca estándar, pero no para nombres de funciones.
- Eiffel, para nombres de clases y de características [11]
- Elixir, para nombres de átomos, variables y funciones [12]
- Erlang, para nombres de funciones [13]
- GDScript, para nombres de variables y funciones [14]
- Java usa SCREAMING_SNAKE_CASE para constantes finales estáticas y valores de enumeración. [15]
- Kotlin usa SCREAMING_SNAKE_CASE para constantes [16]
- Magik
- OCaml, para valores, tipos y nombres de módulos [17]
- Perl, para variables léxicas y subrutinas [18]
- Oracle SQL y PL/SQL, [19] para todos los identificadores sin comillas (tablas, columnas, índices, restricciones, variables PL/SQL, constantes, procedimientos/funciones, activadores,...), aunque no es oficial de Oracle, sigue siendo recomendado por la mayoría de los "influyentes" conocidos y utilizado en toda la documentación oficial de Oracle
- Todos los identificadores de snake_case sin comillas se representan internamente como identificadores SCREAMING_SNAKE_CASE.
- Prolog, tanto para átomos (nombres de predicados, nombres de funciones y constantes) como para variables [20]
- Python, para nombres de variables, nombres de funciones, nombres de métodos y nombres de módulos o paquetes (es decir, archivos) [2]
- PHP usa SCREAMING_SNAKE_CASE para constantes de clase
- R, para nombres de variables, nombres de funciones y nombres de argumentos, especialmente en el estilo tidyverse [21]
- Ruby, para nombres de métodos y variables [22]
- Rust, para nombres de variables, nombres de funciones, nombres de métodos, nombres de módulos y macros [23]
- Tcl
- Terraform (software), para recursos y variables [24]
Ver también
- Camel case, más común en Java y C#
- Caso de kebab, más común en LISP
- Convención de nomenclatura (programación)
Referencias
- ↑ Sharif, Bonita; Maletic, Jonathan I. (2010). «An Eye Tracking Study on camelCase and under_score Identifier Styles». 2010 IEEE 18th International Conference on Program Comprehension. pp. 196-205. ISBN 978-1-4244-7604-6. doi:10.1109/ICPC.2010.41.
- ↑ a b Guido van Rossum, Barry Warsaw, Nick Coghlan (5 de julio de 2001). «PEP 0008 -- Style Guide for Python Code». Error en la cita: Etiqueta
<ref>
no válida; el nombre «pep0008» está definido varias veces con contenidos diferentes - ↑ Error en la llamada a Plantilla:Snake case: parámetro title requerido.
- ↑ «Quora». 10 de mayo de 2013.
- ↑ «StackOverflow – What's the name for snake_case with dashes?».
- ↑ «Programmers – If this is camelCase what-is-this?».
- ↑ «Camel_SNAKE-kebab». GitHub. 23 April 2020.
- ↑ «Naming Conventions in ABAP Objects». help.sap.com. Consultado el 28 de julio de 2020.
- ↑ «Ada Programming Guidelines».
- ↑ «Boost Library Requirements and Guidelines». Consultado el 13 de agosto de 2015.
- ↑ «Eiffel Class and Feature Names». 28 December 2019.
- ↑ «Elixir Style Guide». GitHub. May 2020.
- ↑ «Programming Rules». Consultado el 11 de agosto de 2017.
- ↑ «GDScript Style Guide».
- ↑ «Code Conventions for the Java Programming Language – Naming Conventions». Oracle. Consultado el 3 de agosto de 2021.
- ↑ «Coding Conventions». Consultado el 3 de febrero de 2023.
- ↑ «Xen wiki». Consultado el 15 de marzo de 2017.
- ↑ Damian Conway (2005). Perl Best Practices. O'Reilly Media Inc. p. 44. ISBN 978-0596001735.
- ↑ «Quick Guide to Some Sources for Naming Conventions for Oracle Database Development». stevenfeuersteinonplsql.blogspot.com. Consultado el 30 de diciembre de 2020.
- ↑ «Coding Guidelines for Prolog (v.3)». MISSING LINK..
- ↑ Wickham, Hadley. The tidyverse style guide.
- ↑ «Ruby Naming Conventions». GitHub. May 2020.
- ↑ «Naming – Rust API Guidelines».
- ↑ «Terraform Naming Conventions». Feb 2022.