Перейти к содержимому

Как правильно называть функции в программировании

  • автор:

Как называть переменные?

Если вы начали программировать, в какой-то момент вам придется подумать, как называть свои переменные и функции. С точки зрения языка программирования названия у них могут быть любыми: от i до MySuperVariable100500.

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

Почему названия переменных важны

  • Через пару недель после завершения проекта вы, скорее всего, забудете, как устроен код и за что отвечают некоторые его части. Правильное имя переменной или функции помогут раскрыть ее предназначение.
  • В какой-то момент с вашим кодом придется работать другому человеку. Чем понятнее имена сущностей, тем проще ему будет разобраться в программе.
  • Правильность и точность именования функций проверяют даже на собесебедовании. В какой-то степени это помогает потенциальному работодателю понять, как устроен ваш образ мыслей.

Правила именования

  • Имя переменной или функции должно отражать намерение — прочитав его, должно стать понятно, зачем нужна именно эта сущность. Хотя выбор имен отнимает время, при рефакторинга кода с плохим именованием его тратится намного больше.
  • Имя любой переменной, функции или класса должно отвечать на три вопроса:
  • Почему оно существует? 2.Что делает?
  • Для чего используется?

Лучше выбирать короткие имена, так как чем длиннее названия переменных, тем тяжелее их набрать без ошибок(хоть тут помогает автокомплит).

Часто функции называют каким-то действием. Например, getUserName() задает имя пользователя, а setSpeed() — скорость.

Вместо заключения — общее правило именования. Называйте переменные и функции так, как будто их будут читать совершенно незнакомые люди. Будто завтра вам в отпуск, а за вас код будет доделывать ваш коллега из Индии. Он должен понять ваши переменные и функции. Если сможете так сделать — вас оторвут с руками в любой компании.

Как правильно называть переменные

Переменные нужны для хранения информации. Это своеобразная «коробка» для данных с уникальным именем. Туда можно положить любое значение и потом менять его сколько угодно раз. Важно назвать переменные так, чтобы даже через несколько месяцев, понять, что и как обозначается в коде. Разберёмся, как именовать переменные в JavaScript и PHP.

Базовые правила

Без них вы просто не сможете создать переменную.

Называйте переменную по правилам именования языка

В противном случае код будет выдавать ошибку. Обычно название переменной — это сочетание букв латинского алфавита, цифр и символа подчеркивания: _ .

Для создания переменных в JavaScript используют специальные команды: var , let , const . Самый старый способ — команда var . Команды let и const появились относительно недавно в ES2015. Их поддерживают все современные браузеры.

  • Переменная с именем age и без значения — var age;
  • Переменная с именем maximum со значением «цифра 5» — let maximum = 5;
  • Переменная с именем FEED_CAT и значением «строка 25 гр» — const FEED_CAT = «25 гр»;

В PHP переменные создаются с помощью символа доллара в начале имени.

  • Переменная с именем age и без значения — $age;
  • Переменная с именем maximum со значением «цифра 5» — $maximum = 5;
  • Переменная с именем FEED_CAT и значением «строка 25 гр» — $FEED_CAT = «25 гр»;

Все правила вы найдёте в документации к языку: для JavaSrcipt — это MDN; для PHP — php.net.

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

Это имена, которые уже выполняют в языке конкретные функции. Если назвать переменную зарезервированным именем, вы получите синтаксическую ошибку:

var class; let return; const var; // Ошибка в JavaScript 
function echo() <>

Примеры зарезервированных имён: var , class , return и export . Полный список вы найдёте документациях для JavaScript и PHP.

Условные правила

Соблюдение этих правил не обязательно. Но они помогут сделать код более понятным для вас самих и других разработчиков.

Понятные имена

Не стоит называть переменные одной буквой, сокращениями, транслитом и просто как придёт в голову. Имя переменной должно кратко описывать её предназначение. Исключения — общепринятые аббревиатуры. Например, счётчики циклов принято называть переменными i , j и k . Кнопку button можно сократить до btn .

Плохо: a , b , var1 , var2 и adsf . Такие имена не несут смысловой нагрузки. Открыв код через некоторое время, вы не поймёте, для чего здесь эта переменная. Придётся вспоминать весь процесс с нуля.

Хорошо: inputBtn , result и onSubmit . Из названия понятно, что тут делает эта переменная.

var a = function(b) < return 2 * Math.PI * b; >var l = a(5); // Непонятно, что это за функция и что мы получим в итоге. 

Перепишем код, используя хорошее именование и получим функцию, считающую длину окружности.

var getCircleLength = function(radius) < return 2 * Math.PI * radius; >var length = getCircleLength(5); 

Единый стиль написания

Есть два основных принципа написания многословных переменных. Не смешивайте их в одном скрипте:

  • Snake_case — для разграничения слов использует нижнее подчеркивание. Принято использовать в PHP. Например: cat_food , maximum_count и on_click_button
  • CamelCase — использует заглавную букву. Принято использовать в JavaScript. Например: catFood , maximumCount и onClickButton

Общепринятые подходы

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

  • значение — существительное: cat , dog ;
  • массив — существительное в множественном числе: cats , dogs ;
  • функция — глагол: download , update ;
  • класс — существительное с заглавной буквой: Cat , Dog ;
  • константа — всё имя пишется заглавными буквами в стиле snake_case: MAXIMUM_FOOD , LIMIT_X ;
  • обработчик — имя описывает событие, по которому он вызывается. Как правило, содержит префикс on или постфикс Handler : onButtonClick , formSendHandler .

Использование этих правил сделает ваш код намного понятнее.

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Как называть переменные и функции, чтобы вас уважали бывалые программисты

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

Зачем как-то по-особому называть переменные и функции

Вам по-любому придётся как-то назвать переменные и функции. С точки зрения языков программирования, переменные могут быть почти любыми: хоть a, b и c, хоть SuperImportantVariable3000. То же с функциями: они могут быть суперкороткими типа yo(), а могут быть невероятно замороченными вроде getNewPageNumberAndNavigateToThatPage(). Как скажете — так и будет. Тем более что современные текстовые редакторы делают автоподстановку всех названий, так что вам даже не придётся их запоминать.

Но есть три момента:

  • Через две недели вы уже забудете, как был устроен ваш код. Если вы написали программу сегодня и вернулись к ней через 14–21 день, вы уже не сможете на ходу вспомнить, за что отвечают разные куски кода. И если по переменной или функции будет понятно, что она делает, то вы себе очень упростите задачу.
  • С вашим кодом обязательно будет работать кто-то другой. Вы сделали классную программу, она функционирует, и вы приглашаете кого-нибудь тоже поработать над ней. Он откроет ваш код и должен будет в нём разобраться. Если переменные и функции названы хорошо, ему будет легко всё понять и он быстро вам поможет.
  • Это влияет на приём на работу. Если решите связать свою жизнь с программированием, по названиям ваших переменных и функций будут судить о ваших качествах как специалиста. Программа может, конечно, работать и без красивого названия переменных, а вот вас в компанию могут и не позвать.

Как называть переменные

Когда начинаешь писать код, у тебя простые программы, к которым нужны простые переменные: screen, score, text и так далее. Потом проекты становятся сложнее, и переменные нужны всё более сложные: totalScore, totalScoreBefore, totalScoreAfter, totalScoreMaxProgressiveLimit и тому подобные. Тут надо остановиться и подумать вот о чём.

Чем длиннее название переменной, тем тяжелее её набрать без ошибок. Спасает автоподстановка, но если её нет — почти наверняка ваш код не полетит из-за опечатки.

Если вы пишете на JavaScript, то будет ещё хуже: так как он генерирует переменные на ходу, ошибка в переменной totalScoreMaxProgresLimit у него не вызовет подозрений. Он создаст новый элемент с этим названием, и у вас будут две переменные — одна правильная, другая неправильная. Программа запустится, но работать будет непредсказуемо.

Поэтому стремитесь выбирать короткие названия переменных, которые при этом понятны без глубокого вникания. Например, totalScore — итоговый счёт в игре, maxWidth — максимальная ширина. Если есть необходимость хранить много переменных на разных полочках, в группах или еще какими-то пачками, изучите понятия объектов и классов в JavaScript — это то, что вам нужно.

Как называть функции

Функция — это подпрограмма внутри вашей программы, которую вы часто используете. Например, можно написать функцию getNumber(), которая будет выдавать случайное число в нужном вам диапазоне. Или сказать setTimer() — и где-то внутри программы установится таймер, который выполнит то, что необходимо, по завершении отсчёта времени.

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

У функций тоже могут быть какие угодно названия. Но обычно они будут примерно такими:

  • shuffle() — скорее всего, перемешает элементы массива;
  • saveScore() — сохранит куда-то счёт игры;
  • kill() — убьёт что-то;
    spawn() — создаст что-то;
  • loadDatabase() — загрузит какую-то базу данных в память;
  • makeBackup() — сделает резервную копию каких-то данных и, скорее всего, сохранит её куда следует;
  • getSpeed() — выяснить, с какой скоростью что-то движется. Функция вернёт скорость;
  • getUserName() — что-то произойдёт, и функция вернёт имя пользователя;
  • getSessionId() — вернёт номер сессии;
  • setTimeout() — задать задержку, после которой произойдёт какое-то действие;
  • setSpeed() — задать чему-то скорость.

Вы заметите, что из названия функции можно понять, что она сделает и сообщит ли какой-то результат. Например, getScore() вернёт счёт игры, setScore() задаст счёт игры и ничего не вернёт, а clearScore() обнулит счёт игры и тоже ничего не вернёт.

А что с заглавными буквами?

В программировании есть два подхода к оформлению функций и переменных: camelCase и snake_case.

В camelCase переменные из нескольких слов соединяются без пробела, все новые слова пишутся с заглавной: getMoney, renderToFrame, removeFromBase и т. д. Этот подход рекомендуется в JavaScript. Обратите внимание: названия переменных и функций в JavaScript чувствительны к заглавным, то есть переменные getmoney и getMoney — это разные переменные.

Snake_case — это когда слова склеиваются нижним подчеркиванием. Это чаще используют в классах CSS. Примеры: header_marginal, form_success.

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

Как не надо называть ни переменные, ни функции

Программисты не советуют называть переменные и функции креативно, например crazyUnicorn или wonderfulWorld(). Из названий этих функций непонятно, что они делают, возвращают ли они что-то и вообще зачем нужны.

Но, например, unicornCount — нормальная переменная с количеством единорогов. А initWorld() — функция, которая создаёт мир компьютерной игры.

Не называйте функции и переменные словами function или variable. MyVar и superFunction() — плохие варианты, потому что вы сами же через две недели забудете, что эти штуки делают.

Лучше не называть функции и переменные по-русски типа solnce или KYCb() — забудете потом, как они правильно пишутся. А когда ваша программа станет международно признанной, разработчики поблагодарят вас. При этом: если ваша функция делает «кусь», чтобы это ни значило, ее можно назвать bite() или getPiece().

Не делайте названия слишком секретными: переменные p, m, t, z или функция hm() — это слишком коротко. Исключение — когда вы пишете циклы: там используются переменные типа i, n, p — с их помощью считают, сколько раз цикл уже отработал. Но эти переменные создались, исполнили свою роль и уничтожились сразу после закрытия цикла, больше к ним не обращаются.

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

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Как правильно называть функции

1. Правильный выбор имен процедур и функций очень важен для повышения читаемости кода. В большинстве случаев хорошо выбранное имя процедуры в сочетании с правильно подобранными именами параметров избавляют от необходимости ее как-то дополнительно описывать. В ряде случаев, сложности в выборе имени процедуры и (или) ее параметров свидетельствуют о неправильной архитектуре программного кода. И наоборот, если «самодокументирующееся» имя придумать легко, значит процедура спроектирована правильно.

2. Имена процедур, функций и формальных параметров следует образовывать от терминов предметной области таким образом, чтобы из имени было понятно назначение. Следует стремиться к тому, чтобы имена были «говорящими» (документировали сами себя).
Например, неправильно:
Функция ВыполнитьПроверку(Параметр1, Рекв, ТЗ)
Функция ПолучитьМассивыРеквизитов(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации)
Правильно:
Функция РеквизитОбъектаЗаданногоТипа(Объект, ИмяРеквизита, ТипЗначения)
Функция ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, ИменаВсеРеквизиты, ИменаРеквизитыОперации)

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

4. Не рекомендуется в названиях процедур и функций описывать типы принимаемых параметров и (или) возвращаемых значений.
Например, неправильно:
Функция ПолучитьМассивРолейСПравомДобавления()
Функция ПолучитьСтруктуруДополнительныхНастроек()
Правильно:
Функция ИменаРолейСПравомДобавления()
Функция ДополнительныеНастройки()
Эта рекомендация справедлива в большинстве случаев за редким исключением, когда без описания типа возвращаемого значения не ясно назначение самой процедуры или функции.

5. Имена процедур в общем случае, следует образовывать от неопределенной формы глагола, от сути выполняемого действия, например:
Неправильно:
Процедура ЗагрузкаКонтрагента()
Правильно:
Процедура ЗагрузитьКонтрагента()

6.1. Имена функций в общем случае следует образовывать от описания возвращаемого значения.
Неправильно:
Функция ПолучитьПолноеИмяПользователя()
Функция СоздатьПараметрыЗаполненияЦенПоставщика()
Функция ОпределитьДатуНачалаСеанса()
Правильно:
Функция ПолноеИмяПользователя()
Функция НовыеПараметрыЗаполненияЦенПоставщика()
Функция ДатаНачалаСеанса()

6.2. Если функция предназначена для создания какого-либо объекта, то рекомендуется в ее имени использовать слово «Новый». Например,
Неправильно:
Функция ДобавитьПолеФормы()
Функция СоздатьЭлементСправочникаФайлы()
Функция ПолучитьТаблицуКоманд()
Правильно:
Функция НовоеПолеФормы()
Функция НовыйЭлементСправочникаФайлы()
Функция НоваяТаблицаКоманд()

6.3. Если функция выполняет проверку какого-то условия, то ее имя рекомендуется начитать со слова «Это» или использовать причастия.
Неправильно:
Функция ПроверитьПроведенностьДокумента()
Функция ПроверитьИзменениеРеквизитовДокумента()
Функция ВнешняяЗадача()
Правильно:
Функция ДокументПроведен()
Функция РеквизитыДокументыИзменены()
Функция ЭтоВнешняяЗадача()

6.4. В имени функции рекомендуется использовать глаголы в неопределенной форме в тех случаях, когда для понимания назначения функции важно, каким образом было получено возвращаемое значение. Например:
Функция ВыбратьДанныеПоПравилу(Правило, ПользовательскиеНастройки)
Функция ПреобразоватьДанныеПоПравилу(НаборыДанных, ПараметрыПреобразования)

6.5. Если выполнение функции предполагает, прежде всего, какое-либо действие, и при этом возврат значения не является ее основной задачей (например, это признак успешно выполненного действия), то имена таких функций следует образовывать от неопределенной формы глагола, как и для процедур.
Например:
Функция РазрешитьРедактированиеРеквизитовОбъекта(Форма)

Интересно, что в русском языке еще надо задумываться над такими вещами как определённая или неопределённая формы глаголов, но в целом всё очень прямолинейно конвертируется на английский язык.
Соблюдаете? Есть что добавить?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *