태그 보관물: functions

functions

부울 메서드 이름 지정 확인 대 부정 관계없이 아래의 첫 번째 양식이 두

부울 메소드는 항상 부정적인 형태로만 사용될 때에도 항상 긍정적 인 형태를 취해야합니까?

엔티티를 작성하기 전에 엔티티가 존재하는지 확인하고 싶다고 가정하십시오. 내 주장은 메소드가 긍정적 인 형식으로 사용되는지 여부에 관계없이 아래의 첫 번째 양식이 두 번째 양식보다 낫다는 것입니다.

요약하면, if(!affirmative)보다 읽기 쉽습니다 if(negative). 의견에 동의하지 않는 동료가 있습니까?

첫 번째 형태 :

int entity_id = 42;
if(!entity_exists(entity_id)) create_entity(entity_id);

두 번째 형태 :

int entity_id = 42;
if(entity_not_exist(entity_id)) create_entity(entity_id);


답변

부울 메소드는 항상 부정적인 형태로만 사용될 때에도 항상 긍정적 인 형태를 취해야합니까?

그런 것들에 대한 규칙을 만드는 것은 조금처럼 보입니다. 코딩 표준 문서 에서 부울 속성에 음수 이름을 사용해서는 안된다는 지침을보고 싶지 않습니다 . 그러나 개인적인 스타일의 문제로, 이름을 긍정적으로 유지하려고 노력하는 것이 좋은 이상이라고 생각합니다. 그러나 나는 그 마른 체형과 쉽게 놓칠 필요가없는 것을 피하는 것이 좋다고 생각합니다 !. 종종 부정적인 이름을 긍정적 인 이름으로 바꾸는 방법을 찾을 수 있습니다.

  • accountHasCharges
  • accountIsClear(와 동일 !accountHasCharges)

명확성은 가장 중요한 고려 사항이며 부정적인 분석법 이름을 피해야하는 좋은 이유는 이중 부정을 유발하거나 악화시킬 수 있기 때문입니다.

  • isComplete // 괜찮아
  • isNotComplete //! isComplete가 일반적으로 더 좋습니다
  • isIncomplete // ‘불완전’이 객체의 알려진 상태이면 의미가있을 수 있습니다.
  • !isNotComplete // 끔찍한
  • !isNotComplete == 0 // 영구적 인 휴가로 이어질 수 있습니다

답변

나는 긍정적 인 말을 읽기가 더 쉽다는 데 동의합니다. 당신은 시도 할 수 있습니다

세번째 형태

int entity_id = 42;
if (entity_is_missing(entity_id)) create_entity(entity_id);

또는

네 번째 양식

int entity_id = 42;
if (is_entity_missing(entity_id)) create_entity(entity_id);

답변

또한 방법이 어떻게 사용되는지에 달려 있습니다. 긍정적이고 부정적인 경우 모두에 사용될 예정이라면

if (!entity_exists(entity_id)) create_entity(entity_id);

if (entity_exists(entity_id)) publish_entity(entity_id);

그런 다음 위와 같이 메소드 이름이 긍정이어야합니다. 어떻게 사용 될지 잘 모르겠다면 위의 내용을 고수하십시오.

그러나 부정적인 경우 에만 사용되는 경우 다음이 허용됩니다 (아마도 바람직 할 수 있음)

if (entity_not_exists(entity_id)) create_entity(entity_id);

더 긍정적 인 말로

if (entity_is_absent(entity_id)) create_entity(entity_id);

답변