Самые странные имена переменных

0
94
views
Самые странные имена переменных

Посетители сайта Quora поделились своими воспоминаниями о самых странных и неподходящих именах переменных, которые им встречались. Приводим перевод рассказов, которые показались нам самыми интересными или забавными.

Майк Майер

Я занимался поддержкой кода, написанного другим разработчиком, который пошел на повышение. Судя по документации, где-то в 500+ строках кода была переменная, содержавшая обратную величину эллиптичности (the reciprocal of the ellipticity). Код был распределен больше чем по 200 файлам, которые хранились, грубо говоря, в 20 директориях. Для поиска этой переменной я перепробовал с помощью grep все подходящие имена, какие только мог придумать. Ни одно из них не подошло, хотя в общей сложности я сделал больше сотни догадок.

В конечном итоге (спустя полдня поисков) я нашел эту переменную.

yticitpille

Этот парень был гениален. И, похоже, ему никогда и в голову не приходило, что его код будет читать кто-то еще.

Перевернутое слово в качестве имени переменной

Амер Икбал Арайн

Просматривая один код, связанный с анализом данных, я наткнулся на блок комментариев:

// Прекратите использовать anal в качестве имени переменной или функции!

// Куда ни глянешь, натыкаешься на anal_this и anal_that!

// Поэтому, пожалуйста, прекратите.

// Используйте analyze, analyzer или что угодно, но не anal_insert() или anal_check()

Крис Альбертсон

Наихудший случай, который мне встречался, это когда автор кода намеренно хотел сделать имена переменных нечитаемыми. Все имена были 5-символьными и состояли только из букв «О» и нулей: OO0OO, O0O0O, OOOOO, OO000.

Роберт Оссвальд

Имена животных в качестве имен переменных

Есть у меня пара историй.

1. Однажды я работал с одним SAP-разработчиком, который имел склонность использовать для временных переменных названия животных. Еще некоторое время после того как он ушел можно было слышать, как его бывший тимлид возмущается: «Мне опять нужно звонить этому «…», не могу я разобраться во всех этих кроликах и цыплятах!»

2. Работая в той же компании, слышал, что в каком-то предыдущем проекте цикл назывался doFoo (). И это было усовершенствованное имя, прежде он назывался doBunny(). Угадайте, кто работал над тем проектом…

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

Но ребята из лаборатории решили, что им нужна какая-то административная программа, написанная конкретно для их факультета. Поэтому, несмотря на все протесты сисадмина, ему поручили ее написать. За 2 недели, прямо перед уходом в армию. Писать надо было на Delphi (дело было в конце 90-х), а он этого языка вообще не знал.

В общем, за 2 недели ему таки удалось выучить Delphi и написать большую часть приложения. Но совершенно не удивительно, что в коде были ошибки.

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

Каждая ошибка и исключение назывались «FuckingError» и «FuckingException», многие переменные также назывались ShittySomething, FuckingThat и т. д.

Но одно имя эту студентку особенно озадачило: var «hrpu». Впоследствии автор кода объяснил: это было звукоподражание для прочистки горла и сплевывания (harrr — pfoo). Это как бы выражало все его удовлетворение работой на тот момент.

Карл Рейнолдс

Одна компания наняла консультанта, чтобы написать драйвер для принтера. Одно из значений, использованных автором кода, было «1827», а имя при этом было «LVBRIP».

На следующий день после сдачи кода этот консультант улетел на месяц в Центральную Америку, где с ним не было связи. А проблема с драйвером проявилась еще до конца первой недели. Поэтому одного из программистов компании попросили просмотреть код и найти, в чем загвоздка. Он провел над этим кодом несколько недель и выявил, что проблема в значении LVBRIP, но он не мог понять, что это значение делает.

Когда консультант вернулся из отпуска, компания его немедленно вызвала. Его спросили, для чего используется LVBRIP. Он ответил: «А, это указатель на текущее положение в буфере печати». Его спросили, почему это называется LVBRIP. Консультант, будучи специалистом по истории музыки, ответил: «1827 это год смерти Людвига ван Бетховена» (Ludwig van Beethoven RIP).

Его уволили прямо на месте.

Имя переменной: дата смерти Бетховена

Ник Паппас

Следующие имена занимают первое место по «неподходящести»:

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.

И я не имею в виду i в циклах или «x», «y», «z» в качестве координат. А если вы не понимаете, что такого в использовании букв алфавита в качестве имен для переменных, значит, вам никогда не приходилось читать чей-то код, где i, x, y, z, r, g, b использовались не для итераций, координат или обозначений цвета, а для чего-то совершенно другого. За исключением указанных случаев, использование букв алфавита в качестве имен переменных просто смехотворно.

Далее идут имена переменных, состоящие из первых букв слов какой-нибудь фразы: ii, hp, ibfer, haihhtpnvmyh…

И, наконец, имена, где БЕЗ ВСЯКОЙ ПРИЧИНЫ удалили все гласные и в результате получилось такое:

canon → cnn

string → strng

bald → bld

blockedFlag →blckdflg

armyHandler →rmhndlr

Вот иллюстрация для примера:

Неудачные имена переменных

Benoît Bruet

Стыдно признаться, но я и сам делал нечто подобное. Студентом я в своем итоговом проекте использовал в качестве имен (правда, не для переменных) названия станций метро в Париже. Мне казалось забавным использовать их в предложениях:

GOTO BASTILLE

GOTO CHAMPS_ELYSEES_CLEMENCEAU

GOTO REPUBLIQUE

GOTO STALINGRAD

Но, по какой-то причине, ассистент профессора, которому я сдавал свою работу, не разделял этого мнения…

Имена переменных - станции метро

Позже, когда я сам был ассистентом профессора в École Centrale de Paris (ECP, «Центральная Парижская Школа»), я помогал студентам в отладке их программ в ходе практических работ.

Однажды колода перфокарт студента была отклонена компьютером из-за неверного названия: COIT-EPF. Это имя можно было понять как COITUS-EPF, где EPF было сокращением «École Polytechnique Féminine» (Женская политехническая школа – своего рода женский инженерный университет, расположенный в нескольких милях от École Centrale de Paris).

Я сказал студенту, что в COIT-EPF нельзя использовать дефис, вместо этого следует пользоваться подчеркиванием. И тут на нас обрушилась завуч с криками «Что?!?!». Она как раз была выпускницей того самого женского университета.

Майк Ларсен

Сам я этого не видел, мне коллега рассказывал. Он работал с одним программистом, который решил сократить имя переменной «count», убрав букву «о». Это было бы не так плохо, если бы эта переменная не использовалась по всему коду того парня.

По словам моего коллеги, тот программист (а он был родом из Индии) заявлял, что ему просто никогда прежде не попадалось это слово без буквы «о».

Сомневаюсь, что это слово неизвестно в Индии. Может быть, просто программист был реально непорочным человеком.

Мэтью Аарон Фейнберг

Мне попадалось много таких имен переменных, но первыми вспоминаются yorn и torf. Очевидно, что это булевы переменные:

yorn = Yes or No

torf = True or False

Но название никак не намекает, что именно «да или нет».

Кайл Бёргесс

Белоголовый орлан

Недавно мне случилось просматривать исходный код другой команды в ходе товарищеского ревью.

В одном из их header-файлов была константа под названием AVERAGE_WINGSPAN_OF_BALD_EAGLE (средний_размах_крыльев_белоголового_орлана).

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

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

У меня не было претензий к выбору имени, но они хранили это значение в МЕТРАХ.

В качестве компенсации за эту ошибку тимлид той команды принес потом пончики.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here