Является ли или имеет префикс для булевых значений

17

При присвоении имени логическому значению или функции, возвращающей логическое значение, обычно префикс имеет значение «is», например.

  • isPointerNull
  • isShapeSquare

Как насчет ссылки на несколько элементов, если это так:

  • arePointersNull или isPointersNull
  • areShapesNull или isShapesNull

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

Любые мнения?

    
задан briantyler 22.04.2010 в 16:02
источник
  • Должно ли это быть вики-сообществом, поскольку это вопрос мнения? –  Levi Hackwith 22.04.2010 в 16:11
  • «Всякий раз, когда вы можете, пожалуйста, избегайте присущих негативов». Это действительно хороший момент, я не думал об этом раньше, но я буду помнить об этом в будущем. Ура! –  briantyler 22.04.2010 в 16:31
  • Не забывайте логические методы, вызываемые после того, как какое-то действие может изменить их упомянутые значения, например isItemNull () (как в JDBC). –  David R Tribble 22.04.2010 в 17:28
  • Множественное имя, например isPointersNull, может быть заменено уникальным именем группы, например isPointerSetNull. –  David R Tribble 22.04.2010 в 17:30
  • Довольно близко java-boolean-getters-is-vs-are –  nawfal 07.02.2014 в 10:29
Показать остальные комментарии

6 ответов

31

Во-первых, isPointersNull просто некрасиво. Не делайте этого.

Обычно я использую any или all , так как are может быть неоднозначным. Означает ли это, что «есть нулевые указатели» или «указатели все нулевые»? anyPointersNull и allPointersNull очистить это, IMO.

    
ответ дан Adam Robinson 22.04.2010 в 16:05
7

Пожалуйста, не используйте isPointersNull. Последовательность не является основанием для жертвования грамматикой и удобочитаемостью.

    
ответ дан froadie 22.04.2010 в 16:03
  • +1 - Я согласен, что arePointersNull лучше. У вас также может быть PointersAreNull, тогда ясность оператора If будет еще лучше. –  ChrisBD 22.04.2010 в 16:06
  • что использовать вместо этого? –  n611x007 02.04.2014 в 17:15
4

Это зависит от языка. Если вы используете Java, «isPointersNull» будет интерпретироваться как поле «pointersNull», где «isPointersNull» не будет использоваться, если вы используете какие-либо средства обработки JavaBean.

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

    
ответ дан Chris Dail 22.04.2010 в 16:07
  • хорошо поставил крис. даже несмотря на то, что имя метода может не иметь для нас смысла, многие инструменты ожидают, что вы будете придерживаться стандартных соглашений, таких как синтаксис JavaBean, и вы соберетесь сами, если вы блуждаете ... только чтобы закончить в соответствии со стандартом в конце , –  tmeisenh 22.04.2010 в 16:11
1

isPointersNull выглядит как опечатка. isPointersNull прекрасно понимает тот факт, что в рассмотрении этого логического объекта участвует более одного объекта. Но если вы хотите согласованности, вы можете обратиться к массиву или коллекции, которые должны быть вашими указателями:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • и др.
ответ дан Paul Sasik 22.04.2010 в 16:08
  • Пока он прекрасно передает, что мы говорим о нескольких элементах, означает ли это, что более одного является нулевым (а некоторые могут быть не равными нулю), или это означает, что имеется более одного указателя, и они Все ли null? –  Adam Robinson 22.04.2010 в 16:18
0

IMO - зависит от контекста (использования и удобочитаемости) логической переменной.

Например:
- если переменная ссылается на единственный указатель, равный нулю, я бы использовал: isPointerNull
- если переменная ссылается на то, что несколько указателей равны нулю, я бы использовал: arePointersNull

НТН.

    
ответ дан Sunny 22.04.2010 в 16:06
0

Я лично перехожу с isWhatever, если я ссылаюсь на метод getter логической переменной, независимо от того, насколько уродливым она соответствует правилам грамматики go. Но если бы у меня был метод, который делал какую-то проверку объекта на основе какого-либо бизнес-правила (например, если число или числа / являются основными), я бы использовал имена, которые сделают моих учителей английского языка счастливыми.

    
ответ дан tmeisenh 22.04.2010 в 16:09