2010-06-05 2 views
9

파일에 검색 엔진 이름의 수가 들어있는 변수가 있다고 가정 해 보겠습니다. 이름은 무엇입니까?긴 변수 이름

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • 엔진
  • engine_names
  • 다른 이름은?

첫 번째 이름은 정확하게 무엇이 포함되어 있는지 설명하지만 너무 길지는 않습니까?, 변수 이름을 선택하기위한 조언은 무엇입니까? 특히 너무 길거나 사용할 약어를 줄이는 방법은 무엇입니까?

+3

나는 'nsen' 또는 심지어'n '이라고 부르는 사람들과 함께 일하는 것이 불행했습니다. 변수와 함수 이름이 일관되고 설명이 가능한 한 그것에 대해 너무 신경 쓰지 마세요. 코드를 "읽기"더 좋게 만들기 위해 함수를 동사로 명명하는 것이 좋습니다. 무의미한 변수를 가진 코드를 유지해야만한다면 분명히 저자를 저주했을 것입니다. (지옥은 자신의 코드를 유지하고 문제가 생겨도 여전히 변하지 않는 사람들을 위해 특별한 장소가 있습니다) . – Mawg

+3

오래 전에 필자는 변수 및 함수 이름을 잘라내어 붙여 넣었지만 요즘 대부분의 IDE에는 코드 완성 기능이 있으므로 이해하기 쉬워야합니다. 가난한 변수 네이밍은 "코드 냄새"이며 일반적으로 구조 부족, 설명 부족 등과 함께 발견됩니다. 어쩌면 나는 배 밖으로 뛰어 갈 것입니다. 그러나 더 이상 전통적인 (Fortran에서) i, j, k'를 루프 제어 변수로 사용합니다. – Mawg

+0

아마도 배열이나 사전'engines'에 저장하고,'engines.count' 또는'engines.len' 또는 적절한 메소드 이름이 무엇이든간에 – Brandin

답변

19

어때 대략 numEngineNames?

변수 이름을 선택하는 것이 과학보다 예술입니다. 당신은 유형에 신기원을 취하지 않고 표현력을 발휘할만큼 충분히 오래 걸리는 것을 원합니다. 주관적인 균형입니다.

누군가가 처음으로 변수 이름을보고 있다면 그 사람이 그 목적을 이해할 가능성이 있습니까?

6

변수의 범위에 따라 다릅니다. 짧은 함수의 지역 변수는 일반적으로 '완벽한 이름'이 될 가치가 없으며 단지 engine_count 또는 그와 비슷한 것으로 부릅니다. 보통 주석은 두 줄로 된 변수 이름보다 낫지 않을 수 있습니다. (그들은 정말 필요한 경우!) 즉, 전역 변수, 멤버 변수 - - 넓은 범위의

변수는 이럴 거의 자기 다큐멘터리의 이름을 가치가있다. 물론 원래 선언을 찾는 것은 어렵지 않으며 대부분의 IDE가 자동으로 수행하지만 변수의 식별자는 의미가 없어야합니다 (예 : number 또는 count).

물론이 모든 것은 개인 코딩 스타일과 직장에서의 규칙에 달려 있습니다.

12

변수의 목적을 똑같이 전달하는 짧은 이름이 있으면 이름이 너무 길어집니다.

나는 여기에 engineCount이 괜찮을 것이라고 생각합니다. 엔진 이름의 수는 아마도 엔진 수와 같습니다.

JaredPar 님의 소식을 참조하십시오.

1

함수의 로컬 변수 인 경우 n 또는 ne이라고 부를 수 있습니다. 대부분의 함수는 두 개 또는 세 개의 변수 만 포함하므로 긴 이름은 필요하지 않습니다.

+7

일지는 모르겠지만 확실히 함수에 의존하지만 변수 그것이 의미하는 바를 전할 수있을만큼 충분히 설명력이 있어야합니다. 3 행 함수이고 n이 engines.Count로 설정된 경우 첫 번째 행에서 의미가 명확합니다. 그러나 함수가 커짐에 따라 n의 사용법은 초기화되는 방식보다 훨씬 더 멀리 떨어져있을 수 있습니다. 이름의 의미는 더 적습니다. 일반적으로, 루프 변수와 람다 매개 변수와 같은 단기 지속 변수의 경우 1과 2 문자 이름을 순전히 예약해야한다고 생각합니다. –

+0

@Anthony 함수가 커질수록 더 짧은 함수로 리팩토링되어야합니다. –

+5

나는 수백 줄 또는 심지어 수십 개의 스트레칭 기능에 대해 말하는 것이 아닙니다. 그러나 이름 의미를 부여하는 것이 얼마나 어렵습니까? 가난한 수액이 그 코드를 어딘가에서 봐야 할 것이라고 생각하고, 가난한 수액이 당신 일 수 있다고 생각하십시오. –

-2

평생 또는 원하는 용도에 따라 다름. 그러나 그것은 발달 기간을 포함합니다. 나는 최근 실험에서 사용하기 때문에 벡터라는 것을 "stuff"라고 명명했습니다.

변수가 선언되어 있거나 바로 옆에 정의되어있는 경우 표현식 이름을 사용하지 않아도됩니다. 그렇지 않다면 나는 중간 길이의 이름을 쓰겠습니다. 사람들이 왜 10자를 넘는 이름을 사용하는지 이해할 수 없습니다. 귀하의 주어진 질문에 대해 enames와 같은 것이 나의 선택 일 것입니다.그것의 지역 변수 인 경우

2

는 예를 들어

int num = text.scan(SEARCH_ENGINE_NAME).size(); 

내가 선택하려는 표현 짧은 이름의보다 명시 적으로 오른쪽으로, 상황에 따라 다릅니다. 합리적으로 우리는 어쩌면 4-5 라인 정도의 제한된 범위에 있으므로 독자가 짧은 이름과 오른쪽 표현 사이를 연결할 수 있다고 가정 할 수 있습니다. 그러나 클래스의 필드라면 가능한 한 상세하게 작성해야합니다.

2

question

primary technical imperative 복잡성을 줄이기 위해 유사한 참조하십시오. 복잡성을 줄이기 위해 변수의 이름을 지정해야합니다. 때로는 이름이 짧아지고 때로는 이름이 길어지는 경우도 있습니다. 일반적으로 유지 보수자가 코드의 복잡성을 이해하는 것이 얼마나 어려운지에 해당합니다.

스펙트럼의 한쪽 끝에 루프 반복자와 인덱스가 있습니다. 이 이름들은 i 또는 j와 같은 이름을 가질 수 있습니다. 그들에게 더 긴 이름을주는 것은 더 혼란을 일으킬뿐입니다.

변수가 자주 사용되지만 더 복잡한 것을 나타내는 경우 명확한 이름을 지정해야 사용자가 사용할 때마다 의미를 다시 학습 할 필요가 없습니다.

스펙트럼의 다른 끝 부분에는 매우 드물게 사용되는 변수가 있습니다. 여기서도 혼란을 줄이기를 원하지만, 짧은 이름을주는 것은 덜 중요합니다. 왜냐하면 변수의 목적을 재검토하는 데 대한 벌칙이 자주 지불되지 않기 때문입니다.

1

코드를 생각할 때 다른 사람의 관점에서 보도록하십시오. 이렇게하면 이름을 선택할 때뿐만 아니라 전체 코드를 읽을 수있게 유지하는 데 도움이됩니다.

정말 긴 변수 이름을 사용하면 코드의 가독성이 혼란스러워 지므로 이러한 변수를 피하십시오. 그러나 스펙트럼의 다른 쪽 끝에서 "n"이나 "ne"와 같은 매우 짧은 이름이나 머리 글자를 피하려고합니다. 이처럼 짧고 비밀스러운 이름은 코드를 읽으려는 사람이 머리카락을 찢어지게합니다. 대개 1 ~ 2 글자 변수는 for 루프에서 증가되는 것과 같은 작은 작업에 사용됩니다.

그럼 남은 것은이 두 극단의 균형입니다. "Num"은 일반적으로 사용되는 약어이며 세미 경험이있는 프로그래머는 사용자가 의미하는 바를 즉시 알 수 있습니다. 그래서 "numEngines"또는 "numEngineNames"와 같은 것이 잘 작동합니다. 이 외에도 변수를 처음 사용했을 때 코드 옆에 주석을 달 수 있습니다. 이를 통해 독자는 자신이하는 일을 정확하게 알 수 있으며 혼란을 피할 수 있습니다.

1

검색 엔진 수를 보유하고 있기 때문에 "search_engine_count"라고 이름을 짓습니다.

0

사용 Esc를 + _ + Esc를는 쓰기 :

this_is_a_long_variable = 42 

Esc를 + _ + Esc를_는 티카 동일 문자가 없습니다. 그래서 당신은 전자를 사용할 수 있지만 후자는 사용할 수 없습니다.

+0

신용은 jVincent로 이동합니다 https://mathematica.stackexchange.com/a/31785/47875 – Miladiouss