Articulo de referencia

Caso de la serpiente

Fragmento de código de un módulo del kernel de Linux , que utiliza el formato Snake para los identificadores Snake case (a veces estilizado autológicamente como snake_case ) es ...

Fragmento de código de un módulo del kernel de Linux , que utiliza el formato Snake para los identificadores

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

Referencias

  1. ^ 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.
  2. ^ "Caso de la serpiente". Mozilla Developer Network . 8 de septiembre de 2023 . Consultado el 10 de noviembre de 2023 .
  3. ^ por Guido van Rossum; Barry Warsaw; Nick Coghlan (5 de julio de 2001). "PEP 0008 -- Guía de estilo para código Python".
  4. ^ 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 .
  5. ^ "StackOverflow – ¿Cuál es el nombre de snake_case con guiones?".
  6. ^ "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 .
  7. ^ "Camel_SNAKE-kebab". GitHub . 23 de abril de 2020.
  8. ^ "Convenciones de nomenclatura en objetos ABAP". help.sap.com . Consultado el 28 de julio de 2020 .
  9. ^ "Directrices de programación de ADA".
  10. ^ "Requisitos y pautas de la biblioteca Boost" . Consultado el 13 de agosto de 2015 .
  11. ^ "Nombres de clases y características de Eiffel". 28 de diciembre de 2019.
  12. ^ "Guía de estilo de Elixir". GitHub . Mayo de 2020.
  13. ^ "Reglas de programación". Archivado desde el original el 4 de septiembre de 2010. Consultado el 11 de agosto de 2017 .
  14. ^ "Guía de estilo de GDScript".
  15. ^ "Convenciones de código para el lenguaje de programación Java: convenciones de nomenclatura". Oracle . Consultado el 3 de agosto de 2021 .
  16. ^ "Convenciones de codificación" . Consultado el 3 de febrero de 2023 .
  17. ^ "Xen wiki" . Consultado el 15 de marzo de 2017 .
  18. ^ Damian Conway (2005). Mejores prácticas de Perl . O'Reilly Media Inc., pág. 44. ISBN 978-0-596-00173-5.
  19. ^ "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 .
  20. ^ 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].
  21. ^ IBM (julio de 1965). IBM Operating System/360 PL/I: Language Specification (PDF) . p. 16 . Consultado el 12 de noviembre de 2023 .
  22. ^ Wickham, Hadley. La guía de estilo de Tidyverse.
  23. ^ "Convenciones de nomenclatura de Ruby". GitHub . Mayo de 2020.
  24. ^ "Nombres: pautas de la API de Rust". Archivado desde el original el 16 de septiembre de 2018. Consultado el 27 de octubre de 2019 .
  25. ^ "Convenciones de nomenclatura de Terraform". Febrero de 2022.
  26. ^ "Documentación - El lenguaje de programación Zig" . Consultado el 10 de marzo de 2024 .
  • Convertidor de fundas de serpiente
Obtenido de "https://es.wikipedia.org/w/index.php?title=Caso_de_serpiente&oldid=1245634096"