Как стать автором
Обновить

Чистый код: 10 советов хорошего нейминга

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров730

В этой статье мы затронем один из самых простых, но в то же время наиболее важных навыков в программировании. Ведь именно грамотное именование кода позволяет говорить о его качестве.

Существует четыре главных фактора, которые отличают хороший код от плохого: читаемость, изменяемость, безопасность и производительность. Первые три — тесно связаны, и главным среди них является именно читаемость.

Ведь читаемость это фундамент, без которого ничего не получится.

Почему читаемость так важна

Когда речь заходит о читаемости, первыми на ум приходят различные идентификаторы: классы, поля, методы, константы.

Грамотно названный идентификатор делает код читабельнее, если прямо отвечает на вопрос «что это такое?». Это здорово помогает, если вы возвращаетесь к проекту спустя несколько месяцев, совершенно не помня его суть.

Также от читаемости кода зависит, сразу ли вольется новый разработчик в проект или будет долго разбираться, а потом напишет такой же грязный код.

Примеров множество.

Десять главных советов по неймингу

  1. Избегайте неинформативных имен

Имена должны помогать человеку, читающему код, сразу понимать, за что отвечает та или иная сущность.

Например, вам требуется описать число максимальных попыток при авторизации. В таком случае не стоит называть идентификатор max или attempts. И тем более a или m.

Лучшим вариантом будет что-то в духе maxAttempts.

  1. Избегайте абстрактных имен

Избегайте имен, которые могут интерпретироваться по-разному или сбивать с толку из-за своей обобщенности.

Например, data или info мало что говорят о содержимом, скрывающемся за ними.

  1. Соблюдайте длину имени, полагаясь на время жизни сущности

Используйте короткие имена для маленьких локальных переменных, а более длинные и описательные имена — для переменных с долгим временем жизни или широкой областью видимости.

Например, перебирая коллекцию изображений, позволительно использовать имя image, но не рекомендуется держать подобную сущность где-то вне контекста.

  1. Использование предметной области

Имена должны отражать термины предметной области, для которой написан код. Это делает код более понятным в контексте проекта.

Например, можно использовать бухгалтерские термины по типу ИНН или НДС (tin и vat) вместо неочевидных insurerIdNumber или inderectTax.

  1. Избегайте магических чисел

Заведите константы, параметры среды или замените числа на строки, где это уместно. Это повысит читаемость, продуктивность и сократит ошибки.

  1. Избегайте отрицаний

Это имена по типу isNotClient и isIncomplete. Количество таких имен необходимо минимизировать, а лучше исключить совсем.

В противном случае, при чтении кода разработчику мысленно придется выполнять двойную работу: вспоминать действительное значение сущности и сопоставлять его с отрицаемой.

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

Если вам с трудом удается произнести имя метода, то вряд ли вы сможете свободно говорить о нем с другими разработчиками. Важно учитывать этот момент, так как обсуждение кода является неотъемлемой частью программирования.

  1. Не используйте слова, зарезервированные языком программирования

К таким словам относятся имена базовых типов, классов и операторов.

Например, в языке Python можно «затенить» любые ключевые сущности, такие как, к примеру, range или list, и тем самым сильно усложнить дальнейшую работу.

  1. Используйте стандартизированный нейминг для времени

Если нужно хранить время какого-либо события, используйте глагол в прошедшем времени с суффиксом At: deletedAt, publishedAt.

Так вы сможете быстро отличать такие сущности от прочих.

  1. Согласуйте со своей командой правила именования

Используйте одни и те же схемы именования во всем вашем проекте. Это упрощает понимание кода новыми разработчиками и помогает в его поддержке.

Приведем примеры хорошего и плохого кода

Хороший: Метод класса Product для получения его стоимости getPrice

Пояснение: Короткое и ясное имя, отражающее суть метода

Еще хороший: Пример метода из фреймворка Laravel: Model::firstOrCreate(attrs, values)

Пояснение: Метод возвращает первую найденную модель по переданным атрибутам или создает и возвращает новую по переданным значениям, и это отражено в названии. Встречая вызов этого метода в программе, разработчик сразу понимает, что здесь происходит.

Плохой: Метод uploadArrayImage(models, collection_name, nameColumn, review)

Что не так: Совершенно неясно, что делает этот метод, если не потратить 15 минут на объяснение. Набор на первый взгляд не связанных друг с другом параметров, смесь стилей нейминга (snake_case и camelCase в параметрах collection_name и nameColumn) и использование отсылки к типу в имени метода. Так писать не надо.

Тоже плохой: Метод класса Salary — calculate()

Что не так: Совершенно неинформативный, хоть и ясно, что подразумевает расчет зарплаты. В тени остается суть: как именно и и с чем этот метод работает.

Подводя итог

Язык определяет мышление — так звучит гипотеза лингвистической относительности. Из этой простой формулировки, в контексте нашей статьи, вытекает тот факт, что чистый и понятный код может колоссально влиять на результат работы.

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

Верим, что наши советы помогут вам усвоить и начать применять основные принципы грамотного именования кода!

Теги:
Хабы:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Публикации

Ближайшие события