Магия, драконы и Мистер Компилятор — забавные комментарии в коде
2026-02-21 01:21 Diff

#подборки

  • 12 июл 2021
  • 0

Магия, драконы и Мистер Компилятор — забавные комментарии в коде

Комментируем комментарии программистов :)

 Анастасия Телесницкая для Skillbox

Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.

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

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

Комментарии во многих языках программирования оформляются похоже. Однострочные следуют после символов //, а многострочные (блочные) заключаются между /* и */ — так в Java, C#, Kotlin и JavaScript.

Также применяются решётка # (например, в Python или Ruby) и -- (два дефиса подряд) — так в SQL.

Мы для единообразия везде будем использовать пару слешей //.

Изображение: GIPHY

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

Кто-то практикует примитивные бытовые заговоры:

// Работай, пожалуйста. Комментарий: Loud Programmer / перевод Skillbox Media

Другие — знакомы с магией истинной:

// Магия. Не трогать.Комментарий: Loud Programmer / перевод Skillbox Media

А в самых глубинах кода водится сильная и страшная магия:

// Это чёрная магия.Комментарий: BetterProgramming / перевод Skillbox Media

С такими заклинаниями шутки плохи, предупреждает следующий комментарий:

// Из какой-то ветки stackoverflow. // Не играй с магией, иногда она кусается.Комментарий: BetterProgramming / перевод Skillbox Media

Stack Overflow — это интернет-форум, где разработчики пишут о проблемах, которые не могут решить сами. А в ответ получают код, который похож на настоящие заклинания :)

Иногда подобные колдунства настолько непонятны, что пугают даже того, кто их в код принёс:

// Не уверен, что нам это нужно, но так страшно удалять.Комментарий: Loud Programmer / перевод Skillbox MediaИзображение: GIPHY

Временами авторам бывает настолько стыдно за свои творения, что они сами перед собой извиняются:

// Дорогой будущий я. Прости меня, пожалуйста. // Я даже выразить не могу, как мне жаль.Комментарий: Techie Delight / перевод Skillbox Media

Наверное, это хорошо, когда свой же код кажется плохим через какое-то время, — ведь это признак развития. Гораздо хуже, когда никакого развития нет. В таком случае можно свалить всё на кота, как сделал автор следующего комментария:

// Этот код работал, пока мой кот не решил // прогуляться по клавиатуре.Комментарий: BetterProgramming / перевод Skillbox Media

…или пожаловаться на жёсткие сроки:

// Да, это плохой код, но сейчас четвёртый час ночи, // а мне надо заставить его заработать. Комментарий: Data Driven Investor / перевод Skillbox Media

…или честно описать, как обстоят дела:

// я сам не понял, что сделалКомментарий: BetterProgramming / перевод Skillbox Media

Можно и вовсе снять с себя ответственность и переложить её на коллег или работодателя:

// Я был против, но они заставили меня написать это.Комментарий: Loud Programmer / перевод Skillbox Media

Код, который просто и быстро устраняет последствия какой-то проблемы (но не её причину), русскоговорящие программисты называют ёмким словом «костыль». Или шифруют вот так:

// Устройство для поддержания веса тела пациента // при стоянии и ходьбе (костыль). Комментарий: Хабр

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

Порой в комментариях сквозит пассивная агрессия с лёгким налётом самооправданий:

// писать это было сложно // так что и читать должно быть не прощеКомментарий: Loud Programmer / перевод Skillbox Media

Иногда от коллег высокомерно отмахиваются:

// для тебя — никаких комментариевКомментарий: Loud Programmer / перевод Skillbox Media

А тут и до прямых угроз недалеко:

// Джон, если ты ещё раз удалишь этот фрагмент кода, // честное слово, я тебя прибью! // Это не «что-то странное»! // Это АВТОМАТИЧЕСКАЯ ПРОВЕРКА! Комментарий: BetterProgramming / перевод Skillbox Media

И даже до очень-очень серьёзных угроз:

// Если я ещё раз это увижу, начну ходить на работу с оружием.Комментарий: plainenglish.io / перевод Skillbox Media

Думаете, разговаривать с коллегами и самим собой в комментах странно? Общаться с компилятором — вот что на самом деле странно:

// Мистер Компилятор, не читайте это, пожалуйста.Комментарий: plainenglish.io / перевод Skillbox Media

И ведь знают прекрасно, что компилятор и так не видит комментарии. Или, по крайней мере, подозревают:

// Иногда мне кажется, что компилятор игнорирует все мои комментарии.Комментарий: plainenglish.io / перевод Skillbox Media

Компилятору комментарии действительно не нужны. Их пишут люди — для людей. Причём есть мнение, что лучше бы не писали: хороший код должен быть понятен, а потому не нуждается в комментировании.

Как говорил Мартин Фаулер, когда вам в следующий раз захочется написать комментарий, попробуйте сперва отрефакторить (переписать) код так, чтобы комментарий стал не нужен.

А если комментарии всё же есть — не доверяйте им. Зачастую они нагло врут:

// Всегда возвращает true public boolean isAvailable() { return false; }Комментарий: BetterProgramming / перевод Skillbox Media

На самом деле этот метод всегда возвращает логическое значение false («ложь»), хотя комментарий утверждает обратное.

А как вам такое получение случайного числа:

// Этот метод, очевидно, возвращает случайное число, // выбранное счастливым кубиком int getRandom() { return 4; }Комментарий: Techie Delight / перевод Skillbox Media

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

Если где-то есть место магии, то и до драконов недалеко:

// .==. .==. // //`^\\ //^`\\ // // ^ ^\(\__/)/^ ^^\\ // //^ ^^ ^/6 6\ ^^ ^ \\ // //^ ^^ ^/( .. )\^ ^ ^ \\ // // ^^ ^/\| v""v |/\^ ^ ^\\ // // ^^/\/ / `~~` \ \/\^ ^\\ // ----------------------------- // здесь обитают драконыКомментарий: plainenglish.io / перевод Skillbox Media

Будьте осторожнее, копаясь в комментариях: вместо драконов вам могут подложить свинью. Но эта свинка окажется полезной. Называют её Safety Pig. Она предупреждает об особенно забористом и сложном коде:

// Внимание! Код ниже может довести до слёз. // Да хранит вас священная свинка // _ // _._ _..._ .-', _.._(`)) //'-. ` ' /-._.-' ',/ // ) \ '. // / _ _ | \ // | a a / | // \ .-. ; // '-('' ).-' ,' ; // '-; | .' // \ \ / // | 7 .__ _.-\ \ // | | | ``/ /` / // /,_| | /,_/ / // /,_/ '`-' Комментарий: Хабр / перевод Skillbox Media

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

Как говорили Гари Мак-Гроу и Эдвард Фельтен, если пользователям дать выбор между пляшущими свиньями и безопасностью, они всегда выберут свиней.

Комментарии — это целая фантазийная Вселенная, в которой есть место магии и драконам, драмам и сожалениям. Про неё можно написать не статью, а целую книгу или снять фильм. Может, он даже удостоился бы «Оскара» — хотя бы за эту речь:

// Я посвящаю этот код, да и вообще всю мою работу, моей жене Дарлин. // Ведь именно ей придётся содержать меня, троих наших детей и собаку, // когда мои творения войдут в релиз.Комментарий: Loud Programmer / перевод Skillbox Media

Если хотите ещё больше узнать о языке айтишников, почитайте об истории словечек из цифрового мира: «жучки»-баги и «печеньки»-куки, «заплатки»-патчи и прочие «облака» — про это вот всё. А если думаете, что и так прекрасно переводите с программерского на русский, — пройдите наш тест и подтвердите это.

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу