Змеиный случай

Змеиный регистр (иногда стилизуемый автоматически как Snake_case ) — это соглашение об именах , в котором каждый пробел заменяется символом подчеркивания (_), а слова записываются строчными буквами . Это широко используемое соглашение об именах в вычислительной технике , например, для имен переменных и подпрограмм , а также для имен файлов . Одно исследование показало, что читатели могут распознать значение змеиного случая быстрее, чем верблюжьего . Однако «испытуемые обучались в основном в стиле подчеркивания», поэтому возможность предвзятости исключить нельзя. [1]
Разновидность — кричащий змеиный регистр , где слова пишутся заглавными буквами (стилизовано под SCREAMING_SNAKE_CASE). [2] Это соглашение используется для констант в таких языках программирования, как C / C++ , Python , Java , PHP , а также для переменных среды .
История [ править ]
Использование символов подчеркивания в качестве разделителей слов восходит к концу 1960-х годов. Он особенно связан с C , встречается в «Языке программирования C» (1978) и противопоставляется регистру паскаль (разновидность верблюжьего регистра ). Однако традиционно у соглашения не было конкретного названия: в руководстве по стилю языка программирования Python оно именуется просто как «lower_case_with_underscores». [3]
В Usenet термин Snake_case впервые появился в сообществе Ruby в 2004 году. [4] использовал Гэвин Кистнер, написав:
Кстати... как *вы* называете этот стиль именования? змея_кейс? Я так и буду это называть, пока меня кто-нибудь не поправит.
Однако бывший инженер Intel Джек Дальгрен заявил, что он использовал этот термин внутри компании Intel (и, возможно, в диалоге с инженерами Microsoft ) в 2002 году. [5] [ не удалось пройти проверку ] Вполне возможно, что этот термин развивался независимо более чем в одном сообществе.
По состоянию на 2015 год [update], имена для других соглашений об именах, разделенных разделителями , для идентификаторов из нескольких слов не стандартизированы, хотя некоторые термины имеют все более высокий уровень использования, например, lisp-case, kebab-case, SCREAMING_SNAKE_CASE и другие. [6] [7] [8]
Примеры [ править ]
Следующие языки программирования по соглашению используют змеиный регистр:
- АБАП [9]
- Ада , начальные буквы также пишутся с заглавной буквы. [10]
- С++ , повышение [11]
- C для некоторых имен типов в стандартной библиотеке, но не для имен функций.
- Eiffel для имен классов и функций. [12]
- Эликсир для имен атомов, переменных и функций. [13]
- Erlang для имен функций [14]
- GDScript для имен переменных и функций. [15]
- Java использует SCREAMING_SNAKE_CASE для статических конечных констант и значений перечисления. [16]
- Котлин использует SCREAMING_SNAKE_CASE для констант и значений перечислений. [17]
- Магия
- OCaml для значений, типов и имен модулей. [18]
- Perl для лексических переменных и подпрограмм [19]
- Oracle SQL и PL/SQL , [20] для всех идентификаторов без кавычек (таблиц, столбцов, индексов, ограничений, переменных PL/SQL, констант, процедур/функций, триггеров и т. д.), хотя это и не является официальным самой Oracle, но все же рекомендуется большинством известных «влиятельных лиц» и используется в официальной документации Oracle
- Все идентификаторы Snake_case без кавычек фактически внутренне представлены как идентификаторы SCREAMING_SNAKE_CASE.
- Пролог как для атомов (имена предикатов, имена функций и констант), так и для переменных. [21]
- Python для имен переменных, имен функций, имен методов и имен модулей или пакетов (т. е. файлов). [3]
- PHP использует SCREAMING_SNAKE_CASE для констант класса.
- ПЛ/Я [22]
- R для имен переменных, имен функций и имен аргументов, особенно в стиле tidyverse. [23]
- Ruby для имен переменных и методов [24]
- Rust для имен переменных, имен функций, имен методов, имен модулей и макросов. [25]
- Ткл
- Terraform (программное обеспечение) для ресурсов и переменных [26]
- Зиг , для переменных [27]
См. также [ править ]
- Случай Camel , более распространенный в Java и C#.
- Случай с кебабом , более распространенный в LISP
- Соглашение об именах (программирование)
Ссылки [ править ]
- ^ Шариф, Бонита; Малетик, Джонатан И. (2010). «Исследование отслеживания движений глаз стилей идентификаторов CamelCase и Under_score». 18-я Международная конференция IEEE по пониманию программ, 2010 г. (PDF) . стр. 196–205. CiteSeerX 10.1.1.421.6137 . дои : 10.1109/ICPC.2010.41 . ISBN 978-1-4244-7604-6 . S2CID 14170019 .
- ^ «Змеиное дело» . Сеть разработчиков Mozilla . 8 сентября 2023 г. Проверено 10 ноября 2023 г.
- ^ Jump up to: Перейти обратно: а б Гвидо ван Россум; Барри Варшава; Ник Коглан (5 июля 2001 г.). «PEP 0008 — Руководство по стилю для кода Python» .
- ^ Гэвин Кистнер (23 февраля 2004 г.). «Правильное использование CamelCase» . Группа новостей : comp.lang.ruby . Usenet: HBn_b.379957$xy6.2073499@attbi_s02 . Проверено 13 августа 2015 г.
- ^ «Квора» . 10 мая 2013 г.
- ^ «StackOverflow – Как называется Snake_case с тире?» .
- ^ «Программисты. Если это CamelCase, что это такое?» . Архивировано из оригинала 7 августа 2016 г. Проверено 13 августа 2015 г.
- ^ «Верблюд_ЗМЕЯ-кебаб» . Гитхаб . 23 апреля 2020 г.
- ^ «Соглашения об именах в объектах ABAP» . help.sap.com . Проверено 28 июля 2020 г.
- ^ «Руководство по программированию на языке Ada» .
- ^ «Требования и рекомендации по повышению библиотеки» . Проверено 13 августа 2015 г.
- ^ «Имена классов и функций Eiffel» . 28 декабря 2019 г.
- ^ «Руководство по стилю эликсира» . Гитхаб . Май 2020.
- ^ «Правила программирования» . Архивировано из оригинала 4 сентября 2010 г. Проверено 11 августа 2017 г.
- ^ «Руководство по стилю GDScript» .
- ^ «Соглашения о коде для языка программирования Java — соглашения об именах» . Оракул . Проверено 3 августа 2021 г.
- ^ «Соглашения о кодировании» . Проверено 3 февраля 2023 г.
- ^ «Зен вики» . Проверено 15 марта 2017 г.
- ^ Дамиан Конвей (2005). Лучшие практики Perl . О'Рейли Медиа Инк. с. 44 . ISBN 978-0-596-00173-5 .
- ^ «Краткое руководство по некоторым источникам соглашений об именах для разработки баз данных Oracle» . stevenfeuersteinonplsql.blogspot.com . Проверено 30 декабря 2020 г.
- ^ Майкл А. Ковингтон; Роберто Баньяра; Ричард А. О'Киф; Ян Вилемакер; Саймон Прайс (2009). «Руководство по кодированию для Пролога (v.3)». п. 14. arXiv : 0911.2899 [ cs.PL ].
- ^ IBM (июль 1965 г.). Операционная система IBM/360 PL/I: спецификации языка (PDF) . п. 16 . Проверено 12 ноября 2023 г.
- ^ Уикхем, Хэдли. Руководство по стилю tidyverse .
- ^ «Соглашения об именах Ruby» . Гитхаб . Май 2020.
- ^ «Именование – Рекомендации по API Rust» . Архивировано из оригинала 16 сентября 2018 г. Проверено 27 октября 2019 г.
- ^ «Соглашения об именах Terraform» . февраль 2022 г.
- ^ «Документация — язык программирования Zig» . Проверено 10 марта 2024 г.