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 denominación? ¿Snake_case? Así lo llamaré hasta que alguien me corrija.
Sin embargo, el ex ingeniero de Intel Jack Dahlgren ha declarado que utilizaba el término internamente en Intel (y quizás en diálogo con ingenieros de Microsoft ) en 2002. [5] [ verificación fallida ] Es posible que el término se haya desarrollado independientemente en más de una comunidad.
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. [6] [7] [8]
Ejemplos
Los siguientes lenguajes de programación utilizan el formato snake case por convención:
OCaml , para nombres de valores, tipos y módulos [18]
Perl , para variables léxicas y subrutinas [19]
Oracle SQL y PL/SQL , [20] 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 [21]
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
^ 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 .
^ "Quora". 10 de mayo de 2013.
^ "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. ISBN978-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 .