Является ли название Booleans, которое начинается с "плохой практики" сейчас? Мой менеджер считает, что "isAnything" устарел и плохая практика. Это правда?
myManager.isLame ? correct() : incorrect();
Является ли название Booleans, которое начинается с "плохой практики" сейчас? Мой менеджер считает, что "isAnything" устарел и плохая практика. Это правда?
myManager.isLame ? correct() : incorrect();
Он довольно часто используется на многих языках, но я не знаю, можно ли с уверенностью сказать, что это предпочтительный метод.
Я думаю, что согласованность и все в данной команде, использующей те же стандарты/стили, - это важно помнить.
Я бы не использовал здесь жесткие и быстрые правила. Хотя я считаю, что префикс, например "Is", полезен при определении логического свойства, существует множество случаев, когда "Is" не лучший выбор.
Принципы именования MSDN включают следующие соответствующие рекомендации.
Введите логические свойства с утвердительной фразой (вместо CanSeek CantSeek). При желании вы также можете префикс Boolean properties с помощью Is, Can или Has, но только там, где он добавляет значение.
Это вопрос стиля, и я видел его много раз (и делаю это сам на многих языках).
isLame()
очень распространен, и я считаю, что он не хромой. В Java это часть спецификации JavaBeans и, следовательно, довольно укомплектованная практика.
Стилистически, мой голос будет для hasValue или isNullOrEmpty. Однако использование умных ярлыков или однострочных утверждений, если это так, является повсеместно плохим. Это значительно снижает читаемость кода, и на большинстве языков это не приведет к увеличению производительности.
было бы лучше, если бы вы создали логическую переменную с понятным именем
boolean lame;
и сделать способ проверить его значение
isLame(){
return lame;
}
Как правило, лучший подход к вызову метода при прямом доступе к переменной.
Следуйте языковому документированному соглашению. Если нет соглашения:
Опустить информацию о типе в переменной имен вообще.
Это включает в себя is
для булевых.
boss.lame? limp(): sprint()
Для языков с сильной типизацией информация избыточна.
Для языков без сильной печати информация по-прежнему избыточна, так как IDE и все доступные инструменты теперь помогают печатать без необходимости свертывания имен.
is
глагол. is_lame()
должен быть методом доступа, который возвращает логическое значение.