조회 맵/HASH를위한 좋은 명명 컨벤션은 무엇입니까?
-
03-07-2019 - |
문제
데이터 처리에서 한 식별자를 다른 식별자에 매핑하기 위해 조회 데이터 구조를 만들어야합니다. 구체적인 예로서, 국가의 2 문자 코드와 전체 이름 사이에 1 대 1 매핑을 보유하는 구조를 가져 가겠습니다. 그것에 우리는 가질 것입니다
AD -> Andorra
AE -> United Arab Emirates
AF -> Afghanistan
이지도를 보유 할 변수의 좋은 이름은 무엇입니까? 일부 아이디어 (낙타 이름을 사용하겠습니다) :
countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName
해결책
내 투표는 이루어질 것입니다 codeToName
이 특별한 경우에는 일반화됩니다. 그것은 그것이 내가 모든 경우에 내가 선택했던 이름이라고 말하는 것은 아닙니다. 그것은 범위, 추가 캡슐화 등에 달려 있습니다. 그러나 좋은 이름 인 것 같은 느낌이 들기 때문에 코드를 읽을 수 있도록하는 데 도움이됩니다.
String country = codeToName["SV"];
상당히 멋지게 보이고 누구나 쉽게 이해할 수 있어야합니다. 아마도 "code"라는 단어를 더 정확한 것으로 바꿀 수 있습니다 ( "CountryCode"는 다음 선택이 될 것입니다).
다른 팁
country_name = countries_by_code[country_code]
그것은“전화 받아 들여지는”테스트를 통과하며 자연어와 비슷하게 들립니다.
나는 컬렉션에 복수를 사용하는 것을 좋아합니다.
countryNames
편집하다: countryCodes
코드에서 이름으로 매핑되기 때문에 잘못되었습니다.
발음 할 때 바로 들리는 것을 사용하십시오. 또한 주요 변수의 이름을 적절하게 이름을 지정합니다. 예시:
countryName = countries[countryCode];
이것은 완벽한 의미가 있습니다 - 당신은 당신이주는 것입니다 countries
ㅏ countryCode
, 그리고 그것은 a countryName
. 이것은 중복 될 것입니다 :
countryName = countryCodesToNames[countryCode];
C#에서는 이것을하는 유형을 호출 할 것입니다. CountryCodeToNameMapping
. 보통 변수를 호출합니다 countryCodeToNameMapping
, 그러나 매우 제한된 상황에서 (예를 들어, lambdas), 아마도 그것을 부를 것입니다 c
또는 m
.
당신이 매핑하는 것을 복수화하는 것에 대한 또 다른 투표.
예를 들어. country = countries[code]