넓은 범위의 함수 변수에 대한 좋은 명명 규칙은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/151594

  •  02-07-2019
  •  | 
  •  

문제

클래스 멤버, 정적 개체, 전역 개체 및 구조체에 대해 서로 다른 명명 규칙을 사용할 수 있습니다.그 중 일부 예는 다음과 같습니다.

_member
m_member

또는 Java의 경우 this.member.

그러나 단일 변수가 완전한 함수 범위 또는 짧은 수명 범위를 갖는 경우를 전달하는 함수 변수 범위에 대한 좋은 기술이나 명명 규칙이 있습니까?

void MyFunction()
{
  int functionScopeVariable;

  if(true)
  {
    //no need for function variable scope naming convention
  }
}
도움이 되었습니까?

해결책

우리는 "로컬"에 대한 기능에서 L_ 접두사를 사용하는 경향이 있습니다. 그리고 그것은 꽤 잘 작동했습니다.

다른 팁

실제로 이 작업을 사용하는 IDE/편집기에 위임하는 것이 좋습니다.

아니요, 실제로 변수 이름 지정에 대해 말하는 것이 아닙니다. 여전히 사람이 수행하는 것이 가장 좋습니다.그러나 이러한 명명 전략의 기본 작업은 하나의 이름이 어떤 유형의 변수를 나타내는지 보여주는 것입니다.

가치가 있는 거의 모든 IDE는 다양한 스타일(색상, 글꼴, 글꼴 유형 등)을 다양한 변수 유형(인스턴스 멤버, 정적 멤버, 인수, 로컬 변수 등)에 정의할 수 있으므로 IDE에서 무엇을 알려줄 수 있습니다. 변수 유형을 사용하면 매번 해당 (그렇지 않으면 쓸모없는) 접두사 또는 접미사를 입력할 필요가 없습니다.

그래서 내 제안은:접두사나 접미사 없이 의미 있는 이름을 사용하세요.

한 가지 방법은 변수의 범위가 클수록 더 길다는 지침을 따르는 것입니다. 이러한 방식으로 글로벌 변수는 긴 설명 이름을 얻는 반면 루프 인덱스 변수와 같은 범위 제한 사항은 단일 문자만큼 작을 수 있습니다.

글로벌, 정적 및 회원 변수에 대한 접두사 또는 특수 명명 규칙을 사용하므로 현지인에게 접두사를 사용할 필요가 없습니다. 특히 루프 변수에 짧은 로컬 변수 이름을 사용하는 옵션을 선호합니다.

'큰 범위 기능'이 없어야한다는 주장이 있으므로 이름 지정에 문제가 없어야합니다. '작은 스코프 기능'변수 이름 지정 규칙을 사용하십시오.

개인 인스턴스 필드에 대한 MSFT 및 기타 스타일 가이드의 지침은 다음과 같습니다. _memberName (낙타 케이스 표기법이 접두사 "_"). 이것은 또한 많은 Microsoft 튜토리얼의 소스 코드에 사용 된 컨벤션이기도합니다.

헝가리어가 아닌 짧기 때문에 사용하고 R#은 개인 인스턴스 필드의 기본 규칙으로 지원합니다.

또한 공개 회원에게 먼저 액세스하는 것을 선호해야하기 때문에 Intellisense의 개인 분야를 모호하게하기 때문에 좋아합니다. 속성 이름에 액세스하고 타이핑을 시작하려면 "Na"첫 번째 제안은 Pascal-Cased Public 인스턴스 속성 이름입니다. 드문 경우 개인 분야에 직접 액세스하고 싶은 경우에는 타이핑을 시작하기로 결정해야합니다."_"그런 다음 Intellisense 팝업에서 개인 필드의 전체 목록을 얻습니다.

또한 MemberName (Pascal-Case 표기법이 접두사로 표시된 Pascal-Case 표기법”이라는 공공 재산의 후원 필드 인 경우 _MemberName이어야한다는 지침을 보았습니다._") 나는 자본 M이 중복되었다고 생각하고 불필요한 키 스트로크를 추가하며 추가 정보를 추가하지 않기 때문에 개인적으로는 마음에 들지 않습니다.

그것은 모두 언어의 스타일 가이드 라인이 어떤지 제안하는지에 대한 모든 것에 달려 있습니다.

나는 그것이 사용과 관련된 의미를 전달하는 한 좋은 것이 좋다고 생각합니다.

나는 그것을 간단하게 유지하는 것을 선호합니다. 나는 다음을 사용합니다.

 m_varname - Class member variables
 g_varname - Global variables

수업 회원에게 사용하는 것과 동일한 컨벤션을 사용합니다. IDE는 귀하의 선언을 찾아야합니다. 함수가 크고 혼란 스러우면 PRBLEM이되면 주소가 필요합니다.

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