Эта статья является продолжением моей предыдущей статьи Краткое изложение - Чистый код Роберта Мартина - Часть 1: Обзор. Пожалуйста, купите книгу на Amazon, если хотите узнать больше о том, как писать значащие имена.

Важность наименования

Имена везде в программном обеспечении. Мы даем имена нашим переменным, функциям, классам и пакетам. Именование - одна из самых важных частей чистого кода. Чтобы написать код в существующей кодовой базе, мы всегда читаем код, а затем меняем его. Согласно опросу, соотношение времени чтения и записи составляет 10: 1 для среднестатистического разработчика в компании-разработчике программного обеспечения. Есть несколько основных принципов, которым вы должны следовать, прежде чем думать об имени в своем коде.

Используйте имена, раскрывающие намерение

Вместо того, чтобы писать int d; // total count of students, всегда лучше писать int studentCount;. Если ваша переменная требует комментария в описании, это плохое имя.

Избегайте дезинформации

Не называйте группу студенческих объектов просто studentList. Для большинства разработчиков List имеет другое значение. List, как правило, не хватает ArrayList для большинства разработчиков Java. Вместо этого используйте studentGroup или просто students в качестве имени переменной.

Делайте значимые различия

Именование серии номеров (a1, a2, a3, ..., aN) является противоположностью намеренного присвоения имен. Такие названия не дезинформативны, они неинформативны. Они не дают подсказки о намерениях автора кода.
Удалите использование шумовых слов, поскольку они являются избыточными. Классы с именами Product, ProductData и ProductInfo имеют одинаковое значение. Переменная name лучше, чем nameString, потому что мы знаем, что имена всегда являются строками.

Используйте произносимые имена

Всегда легко говорить о коде и передавать других, если мы используем произносимые имена.

Используйте имена с возможностью поиска

Хорошее доступное для поиска имя всегда предлагается вместо однобуквенного имени переменной. Вы можете использовать переменную String linkedInURL; вместо String l;. Теперь, когда большинство современных IDE поддерживают предложение имен переменных и методов в отсортированном порядке, присвоение имен серии переменных, таких как addressStreet, addressCity, addressState, действительно помогает при автозаполнении.

Избегайте ментального картирования

Мы, разработчики, умны. Если мы увидим какой-то код как int a, b;, мы автоматически выберем следующее имя переменной как int c;. Мы должны избегать этого и использовать передовой опыт, чтобы выбрать лучшее имя.

Выбор имени класса

Всегда выбирайте существительное или существительную фразу для названия класса. Например. Customers, WikiPage. Избегайте использования глаголов в названиях классов.

Выбор имени метода

Выберите глагол или глагольную фразу в качестве имени метода. Поскольку это помогает понять, что он делает.
Когда конструкторы классов перегружены, используйте статические фабричные методы с именами, описывающими аргумент. Complex decimalPoint = Complex.FromDecimalNumbers(30); лучше, чем писать Complex decimalPoint = new Complex(30);

Не пытайся быть милым, называя

Никогда не используйте сленг в имени переменной. Ваше чувство юмора может не понять всех.

Выберите одно слово для каждой концепции

Сложно иметь get, fetch, retrieve в разных классах.
Когда вы используете одно и то же имя для всех классов, постарайтесь сохранить одинаковое поведение / тип возврата. Например. add функция всегда должна возвращать список объектов во всех классах.

Используйте доменные имена для решения / проблемы

Большинство читателей вашего кода в прошлом изучали информатику. Поэтому, если вы используете detectShortestPath, detectRaceCondition в качестве имени метода, они поймут его лучше.

Добавьте содержательный контекст к своим именам

В методе, если вы используете переменные как street, city, country для хранения некоторых значений адреса, переменная с именем state автоматически присоединяется к синтаксису адреса, но могла бы использоваться в другом контексте. Всегда лучше добавлять значимый контекст, например addrStreet, addrCity и addrCountry, в качестве имен переменных.

Прочтите мою следующую статью - Часть 3: Функции, чтобы узнать, как писать чистые функции.