Заметка семнадцатая. Переменная users_ids

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

В моём коде часто можно встретить переменную users_ids. В ней, очевидно, я храню айдишники пользователей. Неважно, каких именно: каких-нибудь пользователей, которые интересуют меня прямо сейчас. И у меня никогда не было сомнений, что я называю эту переменную правильно. Пока Тёма не сказал, что носители языка называют её не users_ids, а user_ids.

Вот несколько доказательств:

  1. тред на стековерфлоу;
  2. поиск по гитхабу: user_ids встречается более 400 000 раз, а users_ids — только 5000;
  3. в гугле за редким исключением все пишут user_ids или userIds, но никак не users_ids и не usersIds.

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

И теперь у меня большая проблема.

Проблема в том, что я всё ещё хочу называть переменную users_ids! Ведь это так логично. Переменная user_ids — это айдишники одного пользователя, в то время как users_ids — айдишники сразу нескольких. Ну ладно, с айдишниками не так наглядно. Но давайте другой пример.

group_members — это участники группы
groups_members — это участники нескольких групп
course_groups — группы внутри одного курса
courses_groups — группы нескольких курсов
course_group_members — участники группы курса
course_groups_members — участники, например, всех групп курса
courses_groups_members — все участники вообще всех групп всех курсов

Смотрите, сколько дополнительной семантики добавляет маленькая буква s в имя переменной! Надо лишь позволить себе забить на лингвистическую некорректность...

И вот как дальше жить? Страдать, но писать правильно, или переубеждать весь остальной мир?

Send
Share
1 comment
Владимир 2018

проблема решается предлогом of:

groups_members – members_of_groups
courses_groups – groups_of_courses
course_groups_members – members_of_course_groups
courses_groups_members – members_of_groups_of_courses

user_ids – айдишники пользователей. Айдишники одного пользователя, так как это достаточно уникальный кейс, лучше назвать ids_of_user.