문제

몇 년 동안 내가 만난 가변 이름의 다양한 스타일이 있습니다.

이름 지정 규칙에 대한 현재 Wikipedia 항목은 상당히 가볍습니다 ...

나는 변수 명명-수정의 간결한 카탈로그를보고, 이름/설명으로 식별하고 몇 가지 예제를보고 싶습니다.

특정 플랫폼 커뮤니티에서 컨벤션이 특히 선호된다면, 그 경우에도 주목할 가치가 있습니다.

나는 이것을 커뮤니티 위키로 바꾸므로 각 컨벤션에 대한 답을 만들고 필요에 따라 편집하십시오.

도움이 되었습니까?

해결책

내가 본 최고의 이름 지정 컨벤션 세트는이 책에 있습니다.코드 완료"Steve McConnell은 컨벤션 명명과 많은 예제에 대한 훌륭한 섹션을 가지고 있습니다. 그의 사례는 다른 언어에 대한 여러"모범 사례 "를 통해 실행되지만 궁극적으로 개발자, 개발자 또는 건축가에게 맡겨야합니다. 동작.

다른 팁

pep8 Python 커뮤니티에서 상대적으로 영향력이있는 표준 라이브러리의 일부인 Python 코드의 스타일 가이드입니다. 보너스 포인트의 경우 Python Standard Library에서 사용하는 이름 지정 규칙을 다루는 것 외에도 일반적으로 이름 지정 규칙에 대한 개요를 제공합니다.

PEP8 : 변수에 따르면 표준 라이브러리의 인스턴스 변수, 기능 및 메소드는 가독성을 위해 밑줄로 분리 된 소문자 단어를 사용해야합니다.

foo
parse_foo
a_long_descriptive_name

이름을 예약 된 단어와 구별하려면 밑줄을 추가하십시오.

in_
and_
or_

약하게 비공개 ( 'm import *'에서 가져 오지 않음)는 단일 밑줄로 시작합니다. 이름 Mangling과 함께 개인 정보가 시행되는 이름은 더블 밑줄로 시작합니다. :

_some_what_private
__a_slightly_more_private_name

Python 'Special'메소드 인 이름 인 이름은 이중 밑줄로 시작하고 끝납니다.

__hash__  # hash(o) = o.__hash__()
__str__   # str(o) = o.__str__()

Sun은 Java에 대한 가변 이름 규칙 목록을 게시했습니다. 여기. 이 목록에는 패키지, 클래스, 인터페이스, 메소드, 변수 및 상수 명명에 대한 규칙이 포함됩니다.

변수 섹션은 상태입니다

변수를 제외하고 모든 인스턴스, 클래스 및 클래스 상수는 소문자 첫 글자와 혼합 된 경우에 있습니다. 내부 단어는 대문자로 시작합니다. 가변 이름은 둘 다 허용 되더라도 밑줄 또는 달러 부호 $ 문자로 시작해서는 안됩니다.

가변 이름은 짧지 만 의미가 있어야합니다. 가변 이름의 선택은 니모닉이어야합니다. 즉, 캐주얼 관찰자에게 사용 의도를 나타내도록 설계되었습니다. 임시 "Throwaway"변수를 제외하고는 하나의 문자 변수 이름을 피해야합니다. 임시 변수의 공통 이름은 정수의 I, J, K, M 및 N입니다. 문자의 경우 C, D 및 E.

몇 가지 예에는 포함됩니다

int             i;
char            c;
float           myWidth;

당신의 이름 지정 협약이 무엇이든, 그것은 일반적으로 당신이 쉽게 구별 할 수 없습니다.

  • 인스턴스 (일반적으로 개인) 변수
  • 로컬 변수 (매개 변수 또는 함수의 로컬로 사용)

나는 사용을 기반으로 한 명명 규칙을 사용합니다. 무기한 기사 이 질문에 설명 된 바와 같이 로컬 변수에 대한 (A, A, 일부) 및 예를 들어 변수가 없습니다. 가변 접두사.

그래서 접두사 (내 웨이 또는 다른 접두사가 나열된 다른 접두사 그 질문에서)은 정제의 한 가지 방법 일 수 있습니다 변하기 쉬운 이름 지정 컨벤션.

나는 당신의 질문이 변수에 제한되지 않는다는 것을 알고 있습니다. 단지 이름 지정 협약의 일부를 지적하고 싶었습니다.

거기에 있습니다 "Java 프로그래머 Phrasebook" Einar Hoest에 의해.

그는 방법 본문의 구조와 함께 방법 이름의 문법 구조를 분석하고 다음과 같은 정보를 수집했습니다.

추가-[명사]-* 이 방법에는 종종 매개 변수가 있으며 개체를 만듭니다. 그들은 필드 값을 거의 반환하지 않습니다. 이 문구는 실제로 모든 응용 프로그램에 나타납니다.

etcetera ... 수백 개의 오픈 소스 프로젝트에서 수집되었습니다.

더 많은 배경 정보는 그의 것을 참조하십시오 SLE08 용지.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top