Соглашения об именах: как назвать булеву переменную?
Мне нужно хорошее имя переменной для логического значения, которое возвращает false, когда объект является последним в списке.
единственное приличное имя, которое я могу придумать, это "inFront", но я не думаю, что это достаточно описательно.
другой выбор будет "isNotLast". Однако это не очень хорошая практика (код завершен, стр. 269, используйте положительные имена булевых переменных).
Я знаю, что могу изменить определение переменной. Поэтому true возвращается, когда объект является последним и вызывает переменную "isLast", однако это облегчило бы эту задачу, если бы у меня было первое объяснение.
11 ответов:
isBeforeTheLastItem isInFrontOfTheLastItem isTowardsTheFrontOfTheList
может быть, слишком многословно, но они могут помочь дать вам идеи.
мой голос был бы назвать его IsLast и изменить функциональность. Если это не совсем вариант, я бы оставил имя как IsNotLast.
Я согласен с полным кодом (используйте положительные имена булевых переменных), я также считаю, что правила должны быть нарушены. Ключ в том, чтобы сломать их только тогда, когда вы абсолютно должны. В этом случае ни одно из альтернативных имен не является таким же ясным, как имя, которое "нарушает" правило. Так что это один из тех случаев, когда нарушение правил может быть окей.
лично больше всего я бы изменил логику или посмотрел на бизнес-правила, чтобы увидеть, диктуют ли они какие-либо потенциальные имена.
поскольку фактическое условие, которое переключает логическое значение, на самом деле является актом "последнего". Я бы сказал, что переключение логики и называние ее "IsLastItem" или подобным было бы более предпочтительным методом.
Haskell использует
init
для ссылки на все, кроме последнего элемента списка (обратнаяtail
, в основном); wouldisInInit
работа, или это слишком непрозрачно?
Как насчет:
hasSiblings or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.) or moreItems
хотя я думаю, что даже если вы не должны делать привычку тормозить "правила" иногда лучший способ добиться чего-то может быть сделать исключение из правила (код полных руководящих принципов), и в вашем случае, назовите переменную isNotLast
простое семантическое имя будет
last
. Это позволит код всегда положительный код, как:if (item.last) ... do { ... } until (item.last);
два вопроса, чтобы думать о
какова область действия переменной (другими словами: вы говорите о локальной переменной или поле?)? Локальная переменная имеет более узкую область действия по сравнению с полем. В частности, если переменная используется внутри относительно короткого метода, я бы не так заботился о ее имени. Когда область является большой именование является более важным.
Я думаю, что есть врожденный конфликт в том, как вы относитесь к этому переменная. С одной стороны, вы говорите "false, когда объект является последним в списке", где, с другой стороны, вы также хотите назвать его "inFront". Объект, который является (не) последним в списке, не поражает меня как (не) inFront. Это я бы пошел с isLast.