code

명명 규칙 : 부울 변수의 이름은 무엇입니까?

codestyles 2020. 12. 11. 08:15
반응형

명명 규칙 : 부울 변수의 이름은 무엇입니까?


객체가 목록에서 마지막 일 때 false를 반환하는 부울 값에 대한 좋은 변수 이름이 필요합니다.

내가 생각 해낼 수있는 유일한 이름은 'inFront'이지만 충분히 설명 적이 지 않다고 생각합니다.

또 다른 선택은 'isNotLast'입니다. 하지만 이것은 좋은 습관이 아닙니다 (코드 완성, 페이지 269, 양의 부울 변수 이름 사용).

변수 정의를 변경할 수 있다는 것을 알고 있습니다. 따라서 객체가 마지막 일 때 true가 반환되고 변수 'isLast'를 호출하지만 첫 번째 설명 만 있으면이 작업을 더 쉽게 수행 할 수 있습니다.


isBeforeTheLastItem

isInFrontOfTheLastItem

isTowardsTheFrontOfTheList

너무 장황 할 수도 있지만 아이디어를 제공 할 수 있습니다.


내 투표는 IsLast라는 이름을 지정하고 기능을 변경하는 것입니다. 이것이 실제로 옵션이 아니라면 이름을 IsNotLast로 두겠습니다.

나는 코드 완성 (양수 부울 변수 이름 사용)에 동의하며 규칙이 위반되도록 만들어 졌다고 생각합니다. 열쇠는 절대적으로해야 할 때만 깨뜨리는 것입니다. 이 경우 규칙을 "위반"하는 이름만큼 명확한 대체 이름은 없습니다. 그래서 이것은 규칙을 어기는 것이 괜찮을 수있는시기 중 하나입니다.


hasFollowingItems? 또는 hasFollowingXXXXs 여기서 XXXX는 목록의 항목이 무엇입니까?


개인적으로 무엇보다 논리를 변경하거나 비즈니스 규칙을 살펴보고 잠재적 인 명명을 지시하는지 확인합니다.

부울을 토글하는 실제 조건은 실제로 "마지막"이되는 행위입니다. 논리를 전환하고 "IsLastItem"또는 이와 유사한 이름을 지정하는 것이 더 선호되는 방법이라고 말하고 싶습니다.


isPenultimateOrPrior

isBeforeEnd


Haskell은 init목록의 마지막 요소를 제외한 모든 요소를 ​​참조하는 데 사용 합니다 ( tail기본적으로 의 역 ). 겠습니까의 isInInit작업, 또는 너무 불투명?


어때 :

 hasSiblings
 or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.)
 or moreItems

비록 당신이 '규칙'을 제동하는 습관을 만들어서는 안된다고 생각하지만 때로는 무언가를 달성하는 가장 좋은 방법은 규칙 (코드 완성 지침)을 예외로 만드는 것일 수 있으며, 귀하의 경우에는 변수 이름을 isNotLast로 지정하십시오.


단순한 의미 이름은 last. 이것은 코드가 항상 다음과 같은 긍정적 인 코드를 허용합니다.

if (item.last)
    ...

do {
   ...
} until (item.last);

변수를 호출합니다 beforeLast.


생각해야 할 두 가지 문제

  1. 변수의 범위는 무엇입니까 (즉, 지역 변수 또는 필드에 대해 말하고 있습니까?)? 지역 변수는 필드에 비해 범위가 좁습니다. 특히 변수가 비교적 짧은 메서드 내에서 사용되는 경우 이름에 대해별로 신경 쓰지 않을 것입니다. 범위가 큰 경우 이름 지정이 더 중요합니다.

  2. 이 변수를 처리하는 방식에 내재 된 충돌이 있다고 생각합니다. 한편으로는 "객체가 목록에서 마지막 일 때 false"라고 말하고 다른 한편으로는 "inFront"라고 부르고 자합니다. 목록에서 마지막이 아닌 객체는 나를 inFront가 아닌 것으로 표시하지 않습니다. 이것은 isLast와 함께 갈 것입니다.


객체가 목록에서 마지막 일 때 false를 반환하는 부울 값에 대한 좋은 변수 이름이 필요합니다.

가장 최근의 PEP 8 Style Guide for Python Code에 따르면, 변수 이름은 "가독성을 높이기 위해 필요에 따라 밑줄로 구분 된 단어와 함께 소문자 여야합니다." 따라서 변수 이름을 지정해야합니다.

is_not_last

다른 프로그래밍 언어는 변수 (예 : firstName, lastName)에 lowerCamelCase 스타일을 사용합니다. 그러나 Python은 underscore_separated 스타일을 선호합니다.


나는 isUnlast로 갈 것입니다.

짧고 간결하며 상황을 완벽하게 설명합니다!

참고 URL : https://stackoverflow.com/questions/1227998/naming-conventions-what-to-name-a-boolean-variable

반응형