Программирование – социальная деятельность.
Не должны состоять из одних сокращений.
Состоят преимущественно из слов разговорной речи.
Удобны для поиска.
Легко находимы в большом объеме кода.
Относительно редкие.
Длинные имена лучше коротких.
Однобуквенные используются только для локальных переменных в коротких методах.
Длина имени соответствует размеру его области видимости.
Имя не содержит информации о типе или области видимости.
Не создает хлопот при расшифровке.
Неразумно заставлять каждого нового работника изучать очередной «язык» кодирования.
Имя остается понятным даже в случае опечатки.
Имя не усложняет изменение типа переменной.
Типы в именах не кодируются.
Переменные классов без префиксов.
Классы и функции компактны – можно обойтись без префиксов.
Имя не содержит балласта.
Имена интерфейсов без префиксов.
Имена не содержат лишней информации.
Не заставляют мысленно преобразовывать имена в другие.
Используются имена из пространств задачи и решения.
Счетчик цикла с малой областью видимости можно назвать 1 буквой – это традиция.
Ясность превыше всего.
Код понятен для других людей.
Имена классов и объектов – существительные и их комбинации без глаголов, не содержат обобщенных понятий – Manager, Processor, Data, Info.
Имена методов – глаголы или глагольные словосочетания.
Методы чтения или записи и предикаты образуются из значения и префикса get, set и is.
При перегрузке конструкторов использовать статические методы-фабрики с именами, описывающими аргументы (принудительное инспользование таких методов).
Нет остроумных шуток.
Ясность предпочтительнее развлекательной ценности.
Нет просторечий и сленга.
Нет шуток.
Одно слово для каждой концепции.
Имена функций законченные и логичные.
Нет эквивалентных методов с именами fetch, retrieve, get в разных классах.
Нет controller, manager, driver в одной кодовой базе.
Имена различны принципиально.
Единый согласованный лексикон.
Не используется одно слово в двух смыслах.
Две разные идеи не обозначены одним термином.
Нет каламбура.
Мысли в коде выражаются доступно.
Используются имена из пространства решения: термины из области информатики, названия алгоритмов, паттернов, математические термины, технические имена.
Используются имена из пространства задачи (клиентские): если нет подходящего программиста, узнаются у специалиста в предметной области.
Разделение концепций из пространств задачи и решения.
Несодержательные сами по себе имена помещаются в определенный контекст для читателя кода – классы, функции и пространства имен с правильно выбранными названиями.
В крайнем случае контекст уточняется префиксом.
Контекст не должен вычисляться.
Функции разделяются на меньшие смысловые фрагменты.