
Snake case (a veces estilizado autológicamente como snake_case ) es la convención de nombres en la que cada espacio se reemplaza con un carácter de guión bajo (_) y las palabras se escriben en minúsculas . Es una convención de nombres de uso común en informática , por ejemplo para nombres de variables y subrutinas , y para nombres de archivos . Un estudio ha descubierto que los lectores pueden reconocer valores en snake case más rápidamente que en camel case . Sin embargo, "los sujetos fueron entrenados principalmente en el estilo de guión bajo", por lo que no se puede eliminar la posibilidad de sesgo. [1]
Una variación es el caso de la serpiente que grita , donde las palabras se escriben en mayúsculas (estilizado como SCREAMING_SNAKE_CASE). [2] Esta convención se utiliza para constantes en lenguajes de programación como C / C++ , Python , Java , PHP , así como para variables de entorno .
Historia
El uso de guiones bajos como separadores de palabras se remonta a finales de la década de 1960. Se asocia particularmente con C , se encuentra en The C Programming Language (1978) y se 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". [3]
Dentro de Usenet, el término snake_case se vio por primera vez en la comunidad Ruby en 2004, [4] utilizado por Gavin Kistner, quien escribió:
Por cierto... ¿cómo se llama ese estilo de nomenclatura? ¿Snake_case? Así lo llamaré hasta que alguien me corrija.
A partir de 2015 [actualizar], los nombres para otras convenciones de nomenclatura separadas por delimitadores para identificadores de varias palabras no se han estandarizado, aunque algunos términos tienen niveles crecientes de uso, como lisp-case, kebab-case, SCREAMING_SNAKE_CASE y más. [5] [6] [7]
Ejemplos
Los siguientes lenguajes de programación utilizan el formato snake case por convención:
- ABAP [8]
- Ada , con letras iniciales también en mayúscula [9]
- C++ , Impulso [10]
- C , para algunos nombres de tipos en la biblioteca estándar, pero no para nombres de funciones.
- Eiffel , para nombres de clases y 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 utiliza SCREAMING_SNAKE_CASE para constantes finales estáticas y valores de enumeración. [15]
- Kotlin usa SCREAMING_SNAKE_CASE para constantes y valores de enumeración [16]
- Magia
- OCaml , para nombres de valores, tipos y módulos [17]
- Perl , para variables léxicas y subrutinas [18]
- Oracle SQL y PL/SQL , [19] para todos los identificadores no entre comillas (tablas, columnas, índices, restricciones, variables PL/SQL, constantes, procedimientos/funciones, activadores,...), aunque no es oficial por parte de Oracle, sigue siendo recomendado por la mayoría de los "influenciadores" conocidos y se utiliza en toda la documentación oficial de Oracle.
- Todos los identificadores snake_case no entre comillas se representan internamente en realidad 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) [3]
- PHP usa SCREAMING_SNAKE_CASE para constantes de clase
- PL/I [21]
- R , para nombres de variables, nombres de funciones y nombres de argumentos, especialmente en el estilo tidyverse [22]
- Ruby , para nombres de variables y métodos [23]
- Rust , para nombres de variables, nombres de funciones, nombres de métodos, nombres de módulos y macros [24]
- Tcl
- Terraform (software) , para recursos y variables [25]
- Zig , para variables [26]
Véase también
- Caso Camel , más común en Java y C#
- Caso de kebab , más común en LISP
- Convención de nombres (programación)
Referencias
- ^ Sharif, Bonita; Maletic, Jonathan I. (2010). "Un estudio de seguimiento ocular en los estilos de identificadores camelCase y under_score". 2010 IEEE 18th International Conference on Program Comprehension (PDF) . págs. 196–205. CiteSeerX 10.1.1.421.6137 . doi :10.1109/ICPC.2010.41. ISBN. 978-1-4244-7604-6. Número de identificación S2C14170019.
- ^ "Caso de la serpiente". Mozilla Developer Network . 8 de septiembre de 2023 . Consultado el 10 de noviembre de 2023 .
- ^ por Guido van Rossum; Barry Warsaw; Nick Coghlan (5 de julio de 2001). "PEP 0008 -- Guía de estilo para código Python".
- ^ Gavin Kistner (23 de febrero de 2004). "Uso apropiado de camelCase". Grupo de noticias : comp.lang.ruby. Usenet: HBn_b.379957$xy6.2073499@attbi_s02 . Consultado el 13 de agosto de 2015 .
- ^ "StackOverflow – ¿Cuál es el nombre de snake_case con guiones?".
- ^ "Programadores: si esto es CamelCase, ¿qué es esto?". Archivado desde el original el 7 de agosto de 2016. Consultado el 13 de agosto de 2015 .
- ^ "Camel_SNAKE-kebab". GitHub . 23 de abril de 2020.
- ^ "Convenciones de nomenclatura en objetos ABAP". help.sap.com . Consultado el 28 de julio de 2020 .
- ^ "Directrices de programación de ADA".
- ^ "Requisitos y pautas de la biblioteca Boost" . Consultado el 13 de agosto de 2015 .
- ^ "Nombres de clases y características de Eiffel". 28 de diciembre de 2019.
- ^ "Guía de estilo de Elixir". GitHub . Mayo de 2020.
- ^ "Reglas de programación". Archivado desde el original el 4 de septiembre de 2010. Consultado el 11 de agosto de 2017 .
- ^ "Guía de estilo de GDScript".
- ^ "Convenciones de código para el lenguaje de programación Java: convenciones de nomenclatura". Oracle . Consultado el 3 de agosto de 2021 .
- ^ "Convenciones de codificación" . Consultado el 3 de febrero de 2023 .
- ^ "Xen wiki" . Consultado el 15 de marzo de 2017 .
- ^ Damian Conway (2005). Mejores prácticas de Perl . O'Reilly Media Inc., pág. 44. ISBN 978-0-596-00173-5.
- ^ "Guía rápida de algunas fuentes de convenciones de nomenclatura para el desarrollo de bases de datos Oracle". stevenfeuersteinonplsql.blogspot.com . Consultado el 30 de diciembre de 2020 .
- ^ Michael A. Covington; Roberto Bagnara; Richard A. O'Keefe; Jan Wielemaker; Simon Price (2009). "Directrices de codificación para Prolog (v.3)". pág. 14. arXiv : 0911.2899 [cs.PL].
- ^ IBM (julio de 1965). IBM Operating System/360 PL/I: Language Specification (PDF) . p. 16 . Consultado el 12 de noviembre de 2023 .
- ^ Wickham, Hadley. La guía de estilo de Tidyverse.
- ^ "Convenciones de nomenclatura de Ruby". GitHub . Mayo de 2020.
- ^ "Nombres: pautas de la API de Rust". Archivado desde el original el 16 de septiembre de 2018. Consultado el 27 de octubre de 2019 .
- ^ "Convenciones de nomenclatura de Terraform". Febrero de 2022.
- ^ "Documentación - El lenguaje de programación Zig" . Consultado el 10 de marzo de 2024 .
Enlaces externos
- Convertidor de fundas de serpiente