Глава посвящена тому, как нужно именовать переменные.
Основной принцип - имя должно полно и точно описывать сущность, представляемую переменной.
Также при именовании переменной нужно ориентироваться на проблему, которую она решает, а не на конкретную реализацию решения.
Хороший диапазон имён переменных 8-20 символов.
Важное правило - чем короче область видимости переменной, тем короче может быть её имя.
Полезно заранее оговорить, как будут применяться спецификаторы вычисляемых значений(Total, Sum, Average, Record, String, Pointer ...) - на какой они будут позиции в имени.
Также, как и для методов, полезно последовательно использовать антонимы:
Конвенции бывают двух степени формальности - формальные и неформальные.
Конвенция, не зависящая от языка:
В проекте в котором применяются несколько языков нужно стремиться сблизить их конвенции.
В отдельных проектах используются стандартизованные префиксы - определяется набор префиксов, отражающих названия основных сущностей предметной области, типов данных, какой-то отдельной семантики. Потом этот набор используется для именования переменных.
Если название переменной вышло очень длинным, нужно его сократить.
Вот некоторые советы по сокращению имён:
Что ещё не нужно делать для сокращения имён:
Основной принцип - имя должно полно и точно описывать сущность, представляемую переменной.
Также при именовании переменной нужно ориентироваться на проблему, которую она решает, а не на конкретную реализацию решения.
Хороший диапазон имён переменных 8-20 символов.
Важное правило - чем короче область видимости переменной, тем короче может быть её имя.
Полезно заранее оговорить, как будут применяться спецификаторы вычисляемых значений(Total, Sum, Average, Record, String, Pointer ...) - на какой они будут позиции в имени.
Также, как и для методов, полезно последовательно использовать антонимы:
- begin/end
- first/last
- locked/unlocked; min/max
- next/previous
- old/new
- opened/closed
- visible/invisible
- source/target
- source/destination
- up/down
- Индексы именуются обычно i, j, k
- Переменным статуса нужно назначать имя описывающее возможные значения статуса, например reportType вместо statusFlag
- К временным переменным нужно относиться с подозрением, если встречается переменная temp, возможно существует более подходящее название, описывающее суть переменной, или эта переменная служит для хранения разных сущностей, тогда лучше разбить её на две отдельные
- Булевым переменным присущи типичные имена:
- done - означает, что операция завершилась(результат не важен)
- error - признак возникновения ошибки
- found - признак того, что обнаружено искомое значение
- success или ok - признак успешного завершения операции
- Также при именовании булевых переменных часто используют префикс is + не нужно использовать отрицательные переменные(notFound, notDone) - это мешает красивым условиям и получается что-то типа if not notFound
- Переменные хранящие элемент перечисления можно называть с учётом имени перечисления
Конвенции бывают двух степени формальности - формальные и неформальные.
Конвенция, не зависящая от языка:
- Проводим различие между именами переменных и именами методов
- Отличаем классы и объекты(классы обычно с большой буквы, а объекты с маленькой)
- Идентифицируем глобальные переменные
- Идентифицируем переменные-члены
- Идентифицируем имена типов
- Идентифицируем именованные константы
- Идентифицируем элементы перечислений
- Идентифицируем неизменяемые параметры методов
- Форматирование имён для удобства чтения(Паскаль, SnakeCase, CamelCase)
В проекте в котором применяются несколько языков нужно стремиться сблизить их конвенции.
В отдельных проектах используются стандартизованные префиксы - определяется набор префиксов, отражающих названия основных сущностей предметной области, типов данных, какой-то отдельной семантики. Потом этот набор используется для именования переменных.
Если название переменной вышло очень длинным, нужно его сократить.
Вот некоторые советы по сокращению имён:
- Использовать стандартные аббревиатуры
- Удалять все гласные, не являющиеся первыми буквами имён
- Удалять артикли и союзы
- Сохранять одну или несколько первых букв каждого слова
- Обрезать слова согласованно(по 1, 2 или 3 буквы - везде одинаково)
- Сохранять первую и последнюю буквы слова
- Сохранять до трёх выразительных слов
- Удалять бесполезные суффиксы(ing, ed ...)
- Сохранять наиболее выразительный звук каждого слога
- Проверять, что смысл названия не изменялся при сокращении
Что ещё не нужно делать для сокращения имён:
- Сокращать слова только на 1 символ
- Сокращать одинаковые слова в разных переменных по-разному
- Сокращать так, что имя потом нельзя чётко произнести
- Не нужно сокращать до таких имён, которые легко неверно прочитать или произнести
- Если для разных имён получаются одинаковые сокращения нужно найти синонимы
- Нужно документировать короткие имена прямо в коде при помощи таблиц
- Указывать все сокращения в проектном документе
- Помнить, что имена создаются для программистов, читающих код
- Избегать имён, содержащих цифры
- Избегать орфографических ошибок
- Избегать слов, при написании которых люди часто делают ошибки
- Проводить различия между именами не только по регистру букв(не нужно делать переменные FRG и frg)
- Избегать смешения естественных языков(пусть всё будет на английском)
Комментариев нет:
Отправить комментарий