Префиксы в именах логических переменных
нужно ли использовать префиксы при именовании переменных, содержащих булевы значения
Именование переменных - возможно, одна из самых трудных частей программирования. В различных проектах часто можно встретить переменные с префиксами is
или has
, но так же можно столкнуться и с использованием старых описательных имен переменных - каждый из подходов, несомненно, имеет семантическое и логическое обоснование. И, прежде чем Вы начнете испытывать муки выбора лучшего подхода к именованию булевых переменных в своем очередном проекте, ознакомьтесь с рекомендациями, приведенными ниже, полагаю, они Вам помогут.
Префиксы - это хорошо, но не обязательно
Префиксы в именах логических переменных могут ухудшать понимание. Нет необходимости манипулировать приставками is
или has
, если наименование объекта однозначно определяет смысл происходящего.
С префиксом
const isPrefixVisible;
const hasVisiblePrefix;
Без префикса
const prefixVisible;
const visiblePrefix;
Примеры, приведенные выше, демонстрируют, что отсутствие префиксов не влияет на понимание смысла логических переменных. Кроме того, следует обратить внимание еще на один момент: расположение имени изменяемого свойства (в данном случае: visible) до или после целевого объекта (в данном случае: prefix) в имени переменной не имеет никакого значения и зависит от Ваших личных предпочтений - оба синтаксических варианта отлично читаются и однозначно трактуются сторонними разработчиками.
Еще одной внутренней проблемой проекта может стать использование префиксов для описания различных способ использования булевых переменных.
С префиксом
const arePrefixesNeccessary;
const isEveryPrefixNeccessary;
Без префикса
const prefixesNeccessary;
const everyPrefixNeccessary;
Вышеприведенный пример демонстрирует, как префикс указывает на использование переменной для группы объектов (are) или только для одного уникального объетка (is). Но и в этом случае можно использовать более понятный и короткий синтаксис, не прибегая к использованию префиксов.
Практическое использование
Логические переменные часто используются для определения условий оператора if. И, следует заметить, что отсутствие префиксов в именах таких перменных делает код понятным и легким для чтения.
// Читается не достаточно легко
if(isPrefixVisible)
// Легко читается
if(prefixVisible)
Данное руководство не призывает Вас менять существующий код в проектах. Оно позволяет выйти из тупика, если Вы испытываете трудности при выборе имен булевых перменных.
Но помните, что, порой, странные и нелепые названия бывают просты для понимания, в то время, как имена, сделанные по заготовленному клише, в свою очередь, бывают просто неэффективны.
Спасибо за внимание.
По материалам статьи Juan Bernal “Naming Boolean Variables: Prefixes”.