부울 메소드는 항상 부정적인 형태로만 사용될 때에도 항상 긍정적 인 형태를 취해야합니까?
엔티티를 작성하기 전에 엔티티가 존재하는지 확인하고 싶다고 가정하십시오. 내 주장은 메소드가 긍정적 인 형식으로 사용되는지 여부에 관계없이 아래의 첫 번째 양식이 두 번째 양식보다 낫다는 것입니다.
요약하면, 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);