Короткое имя

Короткое имя (переменной) — способ сделать в ряде случаев выражения более наглядными.

Самый плохой стиль для имён переменных — давать им бессмысленные имена вроде Abc или Zxcv. (Хотя, может быть, кто-то пытается специально сделать свой код плохо читаемым.) Большинство профессиональных программистов стараются давать переменным говорящие имена, обычно довольно длинные, вроде User_name или User_age. И это часто правильно.

В Эрланге нет пользовательских типов данных, и из-за этого код становится менее конкретным (более абстрактным). Это даёт возможность и даже подталкивает программиста к повторному использованию кода. В других языках (можно сказать, более утилитарных) зачастую наглядным как раз является назвать класс, например, GorodaRossii, а экземпляр этого класса — GorodRossii. Пусть в классе всего два поля — название и количество жителей, — но тем не менее этот класс создан для совершенно конкретной цели, и даже само название напоминает программисту, что для других целей этот класс использовать не стоит.

Эрланг — функциональный язык, здесь только функции. Сегодня мы написали функцию для работы с пользователями, содержащую переменные User_name и User_age, завтра другую функцию — с переменными Book и Pages (допустим, для библиотеки), послезавтра поняли, что обе эти функции делают одно и то же. Разница лишь в названиях самой функции и переменных в ней. Кто-то оставит как есть, ну а кто-то создаст абстрактную функцию, то есть функцию, которая что-то делает и делает это хорошо, но изнутри неё вообще не понять, для решения каких более широких задач она писалась.

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

В таких функциях текстовая переменная это просто текст, а не имя пользователя или название книги. Поэтому, может быть, её лучше назвать как Text или, ещё более сокращённо, Tx. Короткие имена обеспечивают наглядность не только за счёт своей компактности, но и за счёт того, что у одного программиста или их сообщества постепенно вырабатывается устойчивое применение букв для обозначения конкретной роли переменной. Типичный пример — переменная I (i), которая во многих языках используется как счётчик, как переменная, плавно увеличивающая или уменьшающая своё значение. Часто можно увидеть, что переменная L используется для обозначения списка, а L1 и L2 обозначают список номер один и список номер два.

Не правда ли, кортеж {Module,Function,Arguments} выглядит менее наглядным, нежели {M,F,A}? Когда выражение и так очень сложное (вызов функции в вызове функции с использованием сложных термов: списков, кортежей, карт), не стоит усложнять себе его восприятие ещё и за счёт длинных имён переменных.

Когда короткие имена используются в паттернах, это тоже весьма упрощает их восприятие. В Эрланге часто можно увидеть такой паттерн [H|T] (Head — голова, Tail — хвост) для “откусывания” первого элемента списка. Можно было бы использовать и длинные переменные, чтобы не забыть, что они означают: [User | Users], но [H|T] лучше отражает суть самой операции (“откусывание”), что часто более важно. Опять же, чем сложнее паттерн, тем меньше хочется усложнять его длинными именами переменных.

Где можно, я предпочитаю использовать одно- или двухбуквенные имена. Для компилятора не имеет значения, одна буква в названии переменной или не одна. Но в некоторых случаях использование коротких имён даже может побудить программиста написать более эффективный код.

Эрланг своими особенностями побуждает чаще пользоваться короткими именами. Переменные привязаны к своим значениям раз и навсегда, и поэтому написание кода чем-то похоже на уроки алгебры в школе, где мы всегда использовали короткие названия переменных: X, Y, Z, X1, X2 и т.д. Написание эффективного кода похоже на решение системы уравнений. Результат должен быть изящным и наглядным. Если мы используем длинные имена, он уже не будет таким изящным и наглядным.

Далее в качестве примера я привожу то, какие смыслы я вкладываю (впрочем, не всегда) в некоторые короткие имена. У каждого программиста свой собственный стиль формируется годами.

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


Copyright © 2024-2026 Алексей Карманов