Магия, драконы и Мистер Компилятор — забавные комментарии в коде
Комментируем комментарии программистов :)
Анастасия Телесницкая для Skillbox
В прошлых выпусках мы постигали юмор разработчиков — смеялись и плакали вместе с ними. Кажется, даже выяснили, что программисты — вовсе не зануды или ботаники.
Сегодня подберёмся к ним ещё ближе: залезем в святая святых — в код. В алгоритмах разбираться не будем, а просто почитаем комментарии — пояснения к коду, которые разработчики пишут для себя и коллег.
Комментарии во многих языках программирования оформляются похоже. Однострочные следуют после символов //, а многострочные (блочные) заключаются между /* и */ — так в Java, C#, Kotlin и JavaScript.
Также применяются решётка # (например, в Python или Ruby) и -- (два дефиса подряд) — так в SQL.
Мы для единообразия везде будем использовать пару слешей //.
Белая и чёрная магия
Жизнь программистов, похоже, полна волшебства и магических ритуалов.
Кто-то практикует примитивные бытовые заговоры:
Другие — знакомы с магией истинной:
А в самых глубинах кода водится сильная и страшная магия:
С такими заклинаниями шутки плохи, предупреждает следующий комментарий:
Stack Overflow — это интернет-форум, где разработчики пишут о проблемах, которые не могут решить сами. А в ответ получают код, который похож на настоящие заклинания :)
Иногда подобные колдунства настолько непонятны, что пугают даже того, кто их в код принёс:
Преступление и извинение
Временами авторам бывает настолько стыдно за свои творения, что они сами перед собой извиняются:
Наверное, это хорошо, когда свой же код кажется плохим через какое-то время, — ведь это признак развития. Гораздо хуже, когда никакого развития нет. В таком случае можно свалить всё на кота, как сделал автор следующего комментария:
…или пожаловаться на жёсткие сроки:
…или честно описать, как обстоят дела:
Можно и вовсе снять с себя ответственность и переложить её на коллег или работодателя:
Код, который просто и быстро устраняет последствия какой-то проблемы (но не её причину), русскоговорящие программисты называют ёмким словом «костыль». Или шифруют вот так:
Высокомерие и угрозы
Работа программистов, казалось бы, тихая и спокойная: сидят себе за компьютером и по клавиатуре стучат. Но, кажется, тишь да гладь у них далеко не всегда.
Порой в комментариях сквозит пассивная агрессия с лёгким налётом самооправданий:
Иногда от коллег высокомерно отмахиваются:
А тут и до прямых угроз недалеко:
И даже до очень-очень серьёзных угроз:
Я, снова я и Мистер Компилятор
Думаете, разговаривать с коллегами и самим собой в комментах странно? Общаться с компилятором — вот что на самом деле странно:
И ведь знают прекрасно, что компилятор и так не видит комментарии. Или, по крайней мере, подозревают:
Компилятору комментарии действительно не нужны. Их пишут люди — для людей. Причём есть мнение, что лучше бы не писали: хороший код должен быть понятен, а потому не нуждается в комментировании.
Как говорил Мартин Фаулер, когда вам в следующий раз захочется написать комментарий, попробуйте сперва отрефакторить (переписать) код так, чтобы комментарий стал не нужен.
А если комментарии всё же есть — не доверяйте им. Зачастую они нагло врут:
На самом деле этот метод всегда возвращает логическое значение false («ложь»), хотя комментарий утверждает обратное.
А как вам такое получение случайного числа:
Ирония в том, что этот метод всегда возвращает число 4. Возможно, оно и правда счастливое, но от метода с таким названием ждёшь, что он будет возвращать разные случайные числа, а не каждый раз одно и то же.
Драконы и свинка безопасности
Если где-то есть место магии, то и до драконов недалеко:
Будьте осторожнее, копаясь в комментариях: вместо драконов вам могут подложить свинью. Но эта свинка окажется полезной. Называют её Safety Pig. Она предупреждает об особенно забористом и сложном коде:
Возможно, образ свиньи выбран не случайно. В компьютерной безопасности есть термин «пляшущие свинки» — он описывает отношение пользователей к этой самой безопасности. В частности, к предупреждениям о потенциально опасном переходе — например, по ссылке, где обещают показать пляшущих свиней.
Как говорили Гари Мак-Гроу и Эдвард Фельтен, если пользователям дать выбор между пляшущими свиньями и безопасностью, они всегда выберут свиней.
И «Оскар» достаётся…
Комментарии — это целая фантазийная Вселенная, в которой есть место магии и драконам, драмам и сожалениям. Про неё можно написать не статью, а целую книгу или снять фильм. Может, он даже удостоился бы «Оскара» — хотя бы за эту речь:
Что дальше?
Если хотите ещё больше узнать о языке айтишников, почитайте об истории словечек из цифрового мира: «жучки»-баги и «печеньки»-куки, «заплатки»-патчи и прочие «облака» — про это вот всё. А если думаете, что и так прекрасно переводите с программерского на русский, — пройдите наш тест и подтвердите это.