Этот вопрос закрыт для ответов, так как повторяет вопрос Как грамотнее и лучше обозначать методы и свойства JS?

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

Здравствуйте, как профи обычно называют переменные?
У меня почему то как приходит время придумать название переменной начинается ступор
Допустим надо получить лайки из поста вконтатка
такое нормальное название:
get_like_from_vk_post
Почти весь код в таких длинных названиях, это нормально абсолютно же?
1)или слишком длинное?
2)И если да то как бы вы назвали такую функцию?
3)Влияет ли длина переменной на скорость?существенно или можно сколько угодно длинные названия придумывать
  • Вопрос задан
  • 3967 просмотров
Пригласить эксперта
Ответы на вопрос 7
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Конкретно в этом случае я бы просто назвал: likes_in_vkpost().

Поясню:
1.
Если функция используется в правой части и присваивает значение в переменную в левой части, то что это если не геттер-функция? Зачем еще раз заострять читателю кода "Нет чувак, я тут 100 пудов достаю лайки из поста". Ему надо просто сказать "Лайки из поста". Не верит, пойдет в функциию и почитает ее код или заглянет в код юнит-тестов.

Если в коде гет-функии шлется http-запрос, потом получается http-ответ. Потом что-то считается. То это означает нарушение принципа "одно действие одна функция".
* Послать запрос одна функция
* Получить ответ другая
* Проанализировать еще одна
* А вот достать уже полученное из сети и хранящееся в объекте или каком-либо хранилище в памяти это и есть гет-функция. По этому ее делают read-only , чтобы она не разрушила объект и тогда она получается "свойством объекта" и по этой причине нет смысла использовать 'get' в имени функции

2. Глагол в функции имеет смысл использовать только тогда, когда вы хотите ЯВНО сказать, что тут нужна крайне внимательно присмотреться.

2.1. У вас есть сложный вычислительный процесс по подсчету лайков и этот код может "тупить", т.е. долго работать тогда и надо говорить compute_likes(). Читающий код задумается при глаголах: compute, analyze, etc

2.2. Обновление значений в объекте тоже может нести опасность и по этой причине нужно добавлять 'set' . Если у чувака объект рушится, то он задаст вопрос: "А кто изменяет объект?" и тогда он будет искать глаголы : set, update, push, pop, etc

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

Возьмем предложения "Эта строка пустая?", "Эти данные зашифрованы?". Как бы вы спросили это по-английски?
'Is string Empty?" , 'Is data encrypted'?. Тогда в коде будем читать как:

if ( str1.empty() )
if ( data1.encrypted() )

Если вы будете использовать схему:

if ( str1.is_empty() )
if ( data1.is_encrypted() )

То вы нарушаете грамматику английского. Глагол 'to be' в вопросительных предложениях ставится ДО подлежащего! Возьмите к примеру документацию к C++ стандартной библиотеке и прочтите описание std::string.

Оговорка: Это не касается случая, когда вы пишите в процедурном стиле. Пример:

empty(driver_data_request)

тут сложно понять что имел ввиду автор и поэтому 'is_empty' вполне имеет смысл!
Ответ написан
BuriK666
@BuriK666
Компьютерный псих
я бы назвал GetVKPostLikes
Ответ написан
@red-barbarian
Длина имени соответственно области видимости.
Если функция небольшая то и длина не нужно большая.
Нужно учитывать контекст. Если понятно, что соцсеть контакт, то нет нужды это писать в имени.
Если понятно, что лайки только на пост, то незачем писать пост.
Т. Е. Возможно лучше
getLikes
Или getLikesCount.
Но все решает контекст и конкретный случай.
Можно так. Придумываешь много имен. Затем понимаешь, что в именах есть что-то общее. Например слово лайки. И танцуешь от этого слова. Т. Е. Количество лайков, дать количество лайков и тд
Ответ написан
Не парьтесь
В программировании вообще две беды: актуальность кэша и как назвать переменную

Кто бы указал первоисточник - был бы благодарен.
Ответ написан
@sta-ger
Game Developer
1. Нормальное, бывает даже, чем длиннее тем лучше.
2. getLikeFromVkPost - исключительно из опыта, названия переменной camel case-ом. С подчеркиванием - значения констант
3. Для JS влияет только если на размер вес .js файла.
Ответ написан
Astrohas
@Astrohas
Python/Django Developer
функцию назвать getVkPostLike()
переменную же лучше назватьvk_post_likes
Ответ написан
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Кратко:
В javascript принято именование camelCase - т.е. будет getLikeFromVkPost.
get - глагол, глаголы используются в названиях функции. Т.е. будетlet likes = getLikeFromVkPost();
Почему первая буква не заглавная - таковая используется у классов (let like = new Like), липо у констант const API_URL = 'api.vk.com';
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы