스네이크 케이스

Snake case
식별자에 스네이크 케이스를 사용하는 리눅스 커널 모듈의 코드 조각.

스네이크 케이스(Snake_case)는 각 공간이 밑줄(_) 문자로 대체되는 글씨를 말하며, 각 단어의 첫 글자를 소문자로 쓴다. 그것은 예를 들어 변수서브루틴 이름, 파일 이름 등에 대해 컴퓨팅에서 일반적으로 사용되는 명명 규칙이다. 한 연구는 독자들이 낙타 케이스보다 뱀 케이스의 가치를 더 빨리 인식할 수 있다는 것을 발견했다. (단, (...) 과목은 주로 밑줄 스타일(...)으로 교육되었기 때문에 편향의 가능성을 배제할 수 없다.)[1]

역사

단어 구분자로 밑줄을 사용한 것은 1960년대 후반으로 거슬러 올라간다. 특히 C 프로그래밍 언어(1978년)에서 발견되는 C와 연관되어 있으며, 파스칼 케이스(낙타 케이스의 일종)와 대비된다. 그러나 전통적으로 이 협약은 특정한 이름이 없었다: 파이톤 프로그래밍 언어 스타일 가이드는 단순히 "낮은_case_with_underscores"[2]라고 말한다.

Usenet 내에서 snake_case라는 용어는 2004년 Gavin Kistner가 다음과 같이 쓰면서 루비 커뮤니티에서 처음 볼 수 있었다.[3]

"BTW... 그 이름을 뭐라고 부릅니까? snake_case? 누가 고쳐줄 때까지 그렇게 부를 거야."

그러나 전 인텔 엔지니어인 잭 달그렌은 2002년 인텔(아마도 마이크로소프트 엔지니어들과 대화 중)에서 내부적으로 이 용어를 사용하고 있었다고 진술했다.[4][failed verification] 이 용어가 둘 이상의 공동체에서 독자적으로 발전했을 가능성이 있다.

일부 용어는 lisp-case, kebab-case, RIGH_SNAKE_CASE 등과 같이 사용 수준이 증가하지만, 2015년 현재 다중 단어 식별자에 대한 다른 구분 기호로 구분된 명명 규칙의 이름은 표준화되지 않았다.[5][6][7]

스네이크 케이스를 일반적으로 사용하는 프로그래밍 언어 목록

  • ABAP[8]
  • 에이다, 첫 글자도 대문자로[9] 썼고
  • C++, 부스트[10]
  • C, 표준 라이브러리의 일부 형식 이름일 경우, 함수 이름일 경우 제외.
  • 에펠, 클래스 및 피처 이름용[11]
  • Elixir(원자, 변수 및 함수 이름[12])
  • Erlang, 함수 이름용[13]
  • GDScript(변수 및 함수 이름[14])
  • Java는 정적 최종 상수와 열거값에는 RIGHT_SNAKE_CASE를 사용한다. [15]
  • 마식
  • OCaml(값, 유형 및 모듈 이름[16])
  • Perl, 어휘 변수 및 서브루틴의[17] 경우
  • 오라클 SQL 및 PL/SQL[18]인용되지 않은 모든 식별자(테이블, 열, 인덱스, 제약 조건, PL/SQL 변수, 상수, 절차/기능, 트리거...)에 대해 오라클 자체에서 공식적이지는 않지만, 여전히 대다수의 알려진 "인플루언서"가 권장하고 공식 오라클 문서 전반에 걸쳐 사용됨
    • 인용되지 않은 모든 snake_case 식별자는 실제로 내부적으로 RIGHT_SNAKE_CASE 식별자로 표현된다.
  • 프롤로그(prolog), 두 원자(predicate name, 함수 이름 및 상수) 및 변수에[19] 대해
  • Python, 변수 이름, 함수 이름, 메서드 이름 및 모듈 또는 패키지(예: 파일) 이름[2]
  • PHP는 클래스 상수에 RIGHT_SNAKE_CASE를 사용한다.
  • R, 변수 이름, 함수 이름, 인수 이름, 특히 깔끔하게 정리된 스타일[20]
  • Ruby(변수 및[21] 방법 이름)
  • , 가변 이름, 함수 이름, 방법 이름, 모듈 이름 및 매크로의[22] 경우
  • Tcl

참고 항목

참조

  1. ^ Sharif, Bonita; Maletic, Jonathan I. (2010). "An Eye Tracking Study on camelCase and under_score Identifier Styles". 2010 IEEE 18th International Conference on Program Comprehension (PDF). pp. 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 Guido van Rossum, Barry Warsaw, Nick Coghlan (2001-07-05). "PEP 0008 -- Style Guide for Python Code".CS1 maint: 작성자 매개변수 사용(링크)
  3. ^ Gavin Kistner (2004-02-23). "Appropriate use of camelCase". Newsgroup: comp.lang.ruby. Usenet: HBn_b.379957$xy6.2073499@attbi_s02. Retrieved 2015-08-13.
  4. ^ "Quora". 2013-05-10.
  5. ^ "StackOverflow - What's the name for snake_case with dashes?".
  6. ^ "Programmers - If this is camelCase what-is-this?".
  7. ^ "Camel_SNAKE-kebab". 23 April 2020.
  8. ^ "Naming Conventions in ABAP Objects". help.sap.com. Retrieved 2020-07-28.
  9. ^ "Ada Programming Guidelines".
  10. ^ "Boost Library Requirements and Guidelines". Retrieved 2015-08-13.
  11. ^ "Eiffel Class and Feature Names". 28 December 2019.
  12. ^ "Elixir Style Guide". May 2020.
  13. ^ "Programming Rules". Retrieved 2017-08-11.
  14. ^ "GDScript Style Guide".
  15. ^ "Code Conventions for the Java Programming Language - Naming Conventions". Oracle. Retrieved 2021-08-03.
  16. ^ "Xen wiki". Retrieved 2017-03-15.
  17. ^ Damian Conway (2005). Perl Best Practices. O'Reilly Media Inc. p. 44. ISBN 978-0596001735.
  18. ^ "Quick Guide to Some Sources for Naming Conventions for Oracle Database Development". stevenfeuersteinonplsql.blogspot.com. Retrieved 2020-12-30.
  19. ^ Michael A. Covington; Roberto Bagnara; Richard A. O'Keefe; Jan Wielemaker; Simon Price (2009). "Coding Guidelines for Prolog (v.3)". p. 14. arXiv:0911.2899 [cs.PL].
  20. ^ Wickham, Hadley. The tidyverse style guide.
  21. ^ "Ruby Naming Conventions". May 2020.
  22. ^ "Naming - Rust API Guidelines".

외부 링크