Именование логических значений - PullRequest
3 голосов
/ 27 марта 2010

Если я только хочу проверить, является ли что-то невозможным или нет (то есть я не буду использовать что-то вроде if(possible)), я должен назвать логическое значение notPossible и использовать if(notPossible) или я должен назвать это possible и использовать if(!possible) вместо этого?

И просто чтобы быть уверенным, если бы мне также пришлось проверить, является ли это possible, я бы назвал возможное логическое значение и использовал бы if(possible) вместе с else, верно?

Ответы [ 9 ]

6 голосов
/ 27 марта 2010

Вы, вероятно, должны использовать isPossible.

Отрицательные имена для логических значений типа notPossible - очень плохая идея. Возможно, вам придется написать что-то вроде if (!notPossible), что затруднит чтение кода. Не делай этого.

4 голосов
/ 27 марта 2010

Я склонен ошибаться в сторону позитивности и использую possible. Это значит, что кто-то не может написать какой-нибудь код позже, который делает это ...

if (!notPossible)

Что не читается.

1 голос
/ 27 марта 2010

Я обычно пытаюсь назвать свои флаги так, чтобы они читались как можно лучше, где они используются. Это означает, что попытайтесь назвать их так, чтобы их не пришлось отрицать, где они используются.

Я знаю, что некоторые люди настаивают на том, чтобы все имена были положительными, чтобы люди не путались между отрицаниями в имени и теми, что в их голове. Это, вероятно, хорошая политика для логического значения в интерфейсе класса. Но если он будет локальным по отношению к одному исходному файлу, и я знаю, что все вызовы будут отрицать его, я бы предпочел увидеть if (impossible && ...), чем if (!isPossible && ...).

1 голос
/ 27 марта 2010

Мне нравится называть логические значения с непротиворечивыми префиксами коротких глаголов, такими как is или has, и я нашел бы префикс not своеобразным и хитрым для умственного "разбора" (так что, я подозреваю, многие читатели кода, независимо от того, чувствуете ли вы это так или нет ;-) - поэтому я бы либо назвал переменную isPossible (и использовал !isPossible), либо просто назвал переменную isImpossible (многие прилагательные имеют такие удобные антонимы, и для префикса has вы можете использовать префикс lacks, чтобы сделать антоним всего этого; -).

0 голосов
/ 27 марта 2010

Вы должны назвать это именно для того, что хранится в нем. Если вы храните информацию о том, возможно ли это, назовите ее isPossible. Если вы храните, нельзя ли назвать это isImpossible.

В любом случае вы можете использовать else, если вам нужно проверить оба случая.

Из вашего описания вам кажется более важным проверить невозможность, поэтому я бы выбрал isImpossible:

if(isImpossible)
{
    // ...
}
else
{
    //...
}
0 голосов
/ 27 марта 2010

Я согласен, что булевы с отрицательным именем - плохая идея, но иногда можно переосмыслить условие таким образом, чтобы оно было положительным. Например, вы можете использовать pathIsBlocked, а не canProceed, или вместо isNotAbleToDie вы можете использовать isImmortal.

0 голосов
/ 27 марта 2010

Я рекомендую использовать isPossible.Кажется, имеет смысл использовать 'is' (или, возможно, 'has') всякий раз, когда вы можете указывать логические переменныеЭто логично, потому что вы хотите узнать, возможно ли что-то , верно?

0 голосов
/ 27 марта 2010

Я думаю, что лучше избегать использования отрицательных значений в именах переменных, чтобы избежать двойного отрицательного значения if (! NotPossible).

0 голосов
/ 27 марта 2010

В зависимости от того, что легче прочитать в вашем конкретном приложении. Только убедитесь, что вы не получите "if (! NotPossible)".

...