Snake case (estilizado como snake_case ) se refiere al estilo de escritura en el que cada espacio se reemplaza por un carácter de subrayado (_) y la primera letra de cada palabra escrita en minúsculas. Es una convención de nomenclatura comúnmente utilizada en informática , por ejemplo, para nombres de variables y subrutinas , y para nombres de archivos . Un estudio ha encontrado que los lectores pueden reconocer los valores de los casos de serpientes más rápidamente que el caso de los camellos . [1]
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 , que se encuentra en The C Programming Language (1978), y se contrasta con el caso pascal (un tipo de caso camello ). 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 "lower_case_with_underscores". [2]
Dentro de Usenet, el término snake_case se vio por primera vez en la comunidad Ruby en 2004, [3] utilizado por Gavin Kistner, escribiendo:
"Por cierto ... ¿cómo * llamas * a ese estilo de nomenclatura? ¿Snake_case? Así es como lo llamaré hasta que alguien me corrija."
Sin embargo, el ex ingeniero de Intel Jack Dahlgren ha declarado que estaba usando el término internamente en Intel (y tal vez en diálogo con los ingenieros de Microsoft ) en 2002. [4] [ verificación fallida ] Es posible que el término se haya desarrollado de forma independiente en más de una comunidad. .
A partir de 2015[actualizar], los nombres de otras convenciones de nomenclatura separadas por delimitadores para identificadores de varias palabras no se han estandarizado, aunque algunos términos tienen niveles de uso cada vez mayores, como lisp-case, kebab-case, SCREAMING_SNAKE_CASE y más. [5] [6] [7]
Ejemplos de
Una lista de lenguajes de programación que usan convencionalmente el caso de serpiente
- ABAP [8]
- C ++ , impulso [9]
- C , para algunos nombres de tipos en la biblioteca estándar, pero no para nombres de funciones.
- Eiffel , para nombres de clases y funciones [10]
- Elixir , para nombres de átomos, variables y funciones [11]
- Erlang , para nombres de funciones [12]
- GDScript , para nombres de funciones y variables [13]
- Java , para constantes finales estáticas y valores de enumeración.
- OCaml , para valores, tipos y nombres de módulos [14]
- Perl , para subrutinas y variables léxicas [15]
- Oracle SQL y PL / SQL , [16] para todos los identificadores no entrecomillados (tablas, columnas, índices, restricciones, variables PL / SQL, constantes, procedimientos / funciones, disparadores, ...), aunque no es oficial por parte de Oracle, todavía se recomienda por la mayoría de "influencers" 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.
- Prólogo , tanto para átomos (nombres de predicados, nombres de funciones y constantes) como para variables [17]
- 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, nombres de argumentos, especialmente en el estilo tidyverse [18]
- Ruby , para nombres de variables y métodos [19]
- Rust , para nombres de variables, nombres de funciones, nombres de métodos, nombres de módulos y macros [20]
- Tcl
Ver también
- Caso camel , 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). "Un estudio de seguimiento ocular en camelCase y estilos de identificador 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. S2CID 14170019 .
- ^ a b Guido van Rossum, Barry Varsovia, Nick Coghlan (5 de julio de 2001). "PEP 0008 - Guía de estilo para código Python" .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Gavin Kistner (23 de febrero de 2004). "Uso adecuado de camelCase" . Grupo de noticias : comp.lang.ruby . Usenet: HBn_b.379957$xy6.2073499@attbi_s02 . Consultado el 13 de agosto de 2015 .
- ^ "Quora" . 2013-05-10.
- ^ "StackOverflow - ¿Cuál es el nombre de snake_case con guiones?" .
- ^ "Programadores: si esto es camelCase, ¿qué es esto?" .
- ^ "Camel_SNAKE-kebab" . 23 de abril de 2020.
- ^ "Convenciones de nomenclatura en objetos ABAP" . help.sap.com . Consultado el 28 de julio de 2020 .
- ^ "Impulsar los requisitos y directrices de la biblioteca" . Consultado el 13 de agosto de 2015 .
- ^ "Nombres de funciones y clases de Eiffel" . 28 de diciembre de 2019.
- ^ "Guía de estilo Elixir" . Mayo de 2020.
- ^ "Reglas de programación" . Consultado el 11 de agosto de 2017 .
- ^ "Guía de estilo GDScript" .
- ^ "Wiki de Xen" . Consultado el 15 de marzo de 2017 .
- ^ Damian Conway (2005). Mejores prácticas de Perl . O'Reilly Media Inc. pág. 44 . ISBN 978-0596001735.
- ^ "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; Precio de Simon (2009). "Directrices de codificación para Prolog (v.3)". pag. 14. arXiv : 0911.2899 [ cs.PL ].
- ^ Wickham, Hadley. La guía de estilo tidyverse .
- ^ "Convenciones de nomenclatura de Ruby" . Mayo de 2020.
- ^ "Naming - Directrices de la API de Rust" .
enlaces externos
- Convertidor de caja de serpiente