Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Фрагмент кода из модуля ядра Linux , который использует регистр змейки для идентификаторов.

Змеиный регистр (стилизованный под snake_case ) относится к стилю написания, в котором каждый пробел заменяется символом подчеркивания (_), а первая буква каждого слова записывается строчными буквами. Это обычно используемое соглашение об именах в вычислениях , например, для имен переменных и подпрограмм , а также для имен файлов . Одно исследование показало, что читатели могут распознать ценность случая змеи быстрее, чем случай верблюда . [1]

История [ править ]

Использование подчеркиваний в качестве разделителей слов относится к концу 1960-х годов. Это особенно связано с C , которое можно найти в языке программирования C (1978), и в отличие от паскальского падежа (тип верблюжьего падежа ). Однако у соглашения традиционно не было конкретного названия: в руководстве по стилю языка программирования Python оно упоминается просто как «lower_case_with_underscores». [2]

В Usenet термин snake_case впервые был замечен в сообществе Ruby в 2004 году [3], который использовал Гэвин Кистнер, написав:

«Кстати ... как * * * вы называете этот стиль именования? Snake_case? Я так буду называть это, пока меня не исправят».

Однако бывший инженер Intel Джек Дальгрен заявил, что он использовал этот термин внутри компании Intel (и, возможно, в диалоге с инженерами Microsoft ) в 2002 году. [4] Возможно, этот термин был разработан независимо более чем в одном сообществе.

По состоянию на 2015 год имена для других соглашений об именах, разделенных разделителями, для идентификаторов из нескольких слов не были стандартизированы, хотя некоторые термины имеют возрастающие уровни использования, такие как lisp-case, kebab-case, SCREAMING_SNAKE_CASE и другие. [5] [6] [7]

Примеры [ править ]

Список языков программирования, которые обычно используют регистр змейки

  • ABAP [8]
  • C ++ , Boost [9]
  • C для имен некоторых типов в стандартной библиотеке, но не для имен функций.
  • Eiffel , для названий классов и функций [10]
  • Эликсир , для имен атомов, переменных и функций [11]
  • Erlang , для имен функций [12]
  • GDScript , для имен переменных и функций [13]
  • Java для статических конечных констант и значений перечисления.
  • OCaml , для значений, типа и имен модулей [14]
  • Perl , для лексических переменных и подпрограмм [15]
  • Oracle SQL и PL / SQL , [16] для всех идентификаторов без кавычек (таблицы, столбцы, индексы, ограничения, переменные PL / SQL, константы, процедуры / функции, триггеры и т. Д.), Хотя и не являются официальными для самой Oracle, все же рекомендуются большинством известных "влиятельных лиц" и используется во всей официальной документации Oracle
    • Все идентификаторы snake_case без кавычек фактически внутренне представлены как идентификаторы SCREAMING_SNAKE_CASE.
  • Пролог , как для атомов (имена предикатов, имена функций и константы), так и для переменных [17]
  • Python , для имен переменных, имен функций, имен методов и имен модулей или пакетов (т. Е. Файлов) [2]
  • PHP использует SCREAMING_SNAKE_CASE для констант класса
  • R , для имен переменных, функций, имен аргументов, особенно в стиле тидиверс [18]
  • Ruby , для имен переменных и методов [19]
  • Rust , для имен переменных, имен функций, имен методов, имен модулей и макросов [20]
  • Tcl

См. Также [ править ]

  • Случай верблюда , более распространенный в Java
  • Футляр для кебаба , более распространенный в LISP
  • Соглашение об именах (программирование)

Ссылки [ править ]

  1. ^ Шариф, Бонита; Малетик, Джонатан И. (2010). «Исследование слежения за глазами на стилях идентификаторов camelCase и under_score». 2010 18-я Международная конференция IEEE по пониманию программ (PDF) . С. 196–205. CiteSeerX  10.1.1.421.6137 . DOI : 10.1109 / ICPC.2010.41 . ISBN 978-1-4244-7604-6. S2CID  14170019 .
  2. ^ a b Гвидо ван Россум, Барри Варшава, Ник Коглан (05.07.2001). «PEP 0008 - Руководство по стилю кода Python» .CS1 maint: использует параметр авторов ( ссылка )
  3. Гэвин Кистнер (23 февраля 2004). «Надлежащее использование camelCase» . Группа новостейcomp.lang.ruby . Usenet: HBn_b.379957$xy6.2073499@attbi_s02 . Проверено 13 августа 2015 .  CS1 maint: обескураженный параметр ( ссылка )
  4. ^ "Quora" . 2013-05-10.
  5. ^ "StackOverflow - Как называется snake_case с тире?" .
  6. ^ "Программисты - Если это CamelCase, что это?" .
  7. ^ "Camel_SNAKE-kebab" . 23 апреля 2020.
  8. ^ «Соглашения об именах в объектах ABAP» . help.sap.com . Проверено 28 июля 2020 .
  9. ^ «Требования и рекомендации по расширению библиотеки» . Проверено 13 августа 2015 . CS1 maint: обескураженный параметр ( ссылка )
  10. ^ «Классы Eiffel и названия функций» . 28 декабря 2019.
  11. ^ "Руководство по стилю Эликсира" . Май 2020.
  12. ^ «Правила программирования» . Проверено 11 августа 2017 . CS1 maint: обескураженный параметр ( ссылка )
  13. ^ "Руководство по стилю GDScript" .
  14. ^ "Xen wiki" . Проверено 15 марта 2017 . CS1 maint: обескураженный параметр ( ссылка )
  15. ^ Дамиан Конвей (2005). Лучшие практики Perl . O'Reilly Media Inc. стр. 44 . ISBN 978-0596001735.
  16. ^ «Краткое руководство по некоторым источникам соглашений об именах для разработки баз данных Oracle» . stevenfeuersteinonplsql.blogspot.com . Проверено 30 декабря 2020 .
  17. ^ Майкл А. Ковингтон; Роберто Баньяра; Ричард А. О'Киф; Ян Вилемакер; Саймон Прайс (2009). «Рекомендации по кодированию для Prolog (v.3)». п. 14. arXiv : 0911.2899 [ cs.PL ].
  18. ^ Уикхэм, Хэдли. Руководство по стилю tidyverse .
  19. ^ «Соглашения об именах Ruby» . Май 2020.
  20. ^ «Именование - Руководство по Rust API» .

Внешние ссылки [ править ]

  • Конвертер змеи