0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#подборки</a></p>
1
<p><a>#подборки</a></p>
2
<ul><li>12 июл 2021</li>
2
<ul><li>12 июл 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Магия, драконы и Мистер Компилятор - забавные комментарии в коде</h2>
4
</ul><h2>Магия, драконы и Мистер Компилятор - забавные комментарии в коде</h2>
5
<p>Комментируем комментарии программистов :)</p>
5
<p>Комментируем комментарии программистов :)</p>
6
<p> Анастасия Телесницкая для Skillbox</p>
6
<p> Анастасия Телесницкая для Skillbox</p>
7
<p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
7
<p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
8
<p>В прошлых выпусках мы постигали юмор разработчиков -<a>смеялись</a>и <a>плакали</a>вместе с ними. Кажется, даже выяснили, что программисты - вовсе не зануды или ботаники.</p>
8
<p>В прошлых выпусках мы постигали юмор разработчиков -<a>смеялись</a>и <a>плакали</a>вместе с ними. Кажется, даже выяснили, что программисты - вовсе не зануды или ботаники.</p>
9
<p>Сегодня подберёмся к ним ещё ближе: залезем в святая святых - в код. В алгоритмах разбираться не будем, а просто почитаем комментарии -<a>пояснения к коду, которые разработчики пишут для себя и коллег</a>.</p>
9
<p>Сегодня подберёмся к ним ещё ближе: залезем в святая святых - в код. В алгоритмах разбираться не будем, а просто почитаем комментарии -<a>пояснения к коду, которые разработчики пишут для себя и коллег</a>.</p>
10
<p>Комментарии во многих языках программирования оформляются похоже. Однострочные следуют после символов //, а многострочные (блочные) заключаются между /* и */ - так в Java, C#, Kotlin и JavaScript.</p>
10
<p>Комментарии во многих языках программирования оформляются похоже. Однострочные следуют после символов //, а многострочные (блочные) заключаются между /* и */ - так в Java, C#, Kotlin и JavaScript.</p>
11
<p>Также применяются решётка # (например, в Python или Ruby) и -- (два дефиса подряд) - так в SQL.</p>
11
<p>Также применяются решётка # (например, в Python или Ruby) и -- (два дефиса подряд) - так в SQL.</p>
12
<p>Мы для единообразия везде будем использовать пару слешей //.</p>
12
<p>Мы для единообразия везде будем использовать пару слешей //.</p>
13
Изображение:<a>GIPHY</a><p>Жизнь программистов, похоже, полна волшебства и магических ритуалов.</p>
13
Изображение:<a>GIPHY</a><p>Жизнь программистов, похоже, полна волшебства и магических ритуалов.</p>
14
<p>Кто-то практикует примитивные бытовые заговоры:</p>
14
<p>Кто-то практикует примитивные бытовые заговоры:</p>
15
// Работай, пожалуйста. Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Другие - знакомы с магией истинной:</p>
15
// Работай, пожалуйста. Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Другие - знакомы с магией истинной:</p>
16
// Магия. Не трогать.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>А в самых глубинах кода водится сильная и страшная магия:</p>
16
// Магия. Не трогать.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>А в самых глубинах кода водится сильная и страшная магия:</p>
17
// Это чёрная магия.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>С такими заклинаниями шутки плохи, предупреждает следующий комментарий:</p>
17
// Это чёрная магия.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>С такими заклинаниями шутки плохи, предупреждает следующий комментарий:</p>
18
// Из какой-то ветки stackoverflow. // Не играй с магией, иногда она кусается.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p><a>Stack Overflow</a> - это интернет-форум, где разработчики пишут о проблемах, которые не могут решить сами. А в ответ получают код, который похож на настоящие заклинания :)</p>
18
// Из какой-то ветки stackoverflow. // Не играй с магией, иногда она кусается.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p><a>Stack Overflow</a> - это интернет-форум, где разработчики пишут о проблемах, которые не могут решить сами. А в ответ получают код, который похож на настоящие заклинания :)</p>
19
<p>Иногда подобные колдунства настолько непонятны, что пугают даже того, кто их в код принёс:</p>
19
<p>Иногда подобные колдунства настолько непонятны, что пугают даже того, кто их в код принёс:</p>
20
// Не уверен, что нам это нужно, но так страшно удалять.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox MediaИзображение:<a>GIPHY</a><p>Временами авторам бывает настолько стыдно за свои творения, что они сами перед собой извиняются:</p>
20
// Не уверен, что нам это нужно, но так страшно удалять.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox MediaИзображение:<a>GIPHY</a><p>Временами авторам бывает настолько стыдно за свои творения, что они сами перед собой извиняются:</p>
21
// Дорогой будущий я. Прости меня, пожалуйста. // Я даже выразить не могу, как мне жаль.Комментарий:<a>Techie Delight</a>/ перевод Skillbox Media<p>Наверное, это хорошо, когда свой же код кажется плохим через какое-то время, - ведь это признак развития. Гораздо хуже, когда никакого развития нет. В таком случае можно свалить всё на кота, как сделал автор следующего комментария:</p>
21
// Дорогой будущий я. Прости меня, пожалуйста. // Я даже выразить не могу, как мне жаль.Комментарий:<a>Techie Delight</a>/ перевод Skillbox Media<p>Наверное, это хорошо, когда свой же код кажется плохим через какое-то время, - ведь это признак развития. Гораздо хуже, когда никакого развития нет. В таком случае можно свалить всё на кота, как сделал автор следующего комментария:</p>
22
// Этот код работал, пока мой кот не решил // прогуляться по клавиатуре.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>…или пожаловаться на жёсткие сроки:</p>
22
// Этот код работал, пока мой кот не решил // прогуляться по клавиатуре.Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>…или пожаловаться на жёсткие сроки:</p>
23
// Да, это плохой код, но сейчас четвёртый час ночи, // а мне надо заставить его заработать. Комментарий:<a>Data Driven Investor</a>/ перевод Skillbox Media<p>…или честно описать, как обстоят дела:</p>
23
// Да, это плохой код, но сейчас четвёртый час ночи, // а мне надо заставить его заработать. Комментарий:<a>Data Driven Investor</a>/ перевод Skillbox Media<p>…или честно описать, как обстоят дела:</p>
24
// я сам не понял, что сделалКомментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>Можно и вовсе снять с себя ответственность и переложить её на коллег или работодателя:</p>
24
// я сам не понял, что сделалКомментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>Можно и вовсе снять с себя ответственность и переложить её на коллег или работодателя:</p>
25
// Я был против, но они заставили меня написать это.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Код, который просто и быстро устраняет последствия какой-то проблемы (но не её причину), русскоговорящие программисты называют ёмким словом "костыль". Или шифруют вот так:</p>
25
// Я был против, но они заставили меня написать это.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Код, который просто и быстро устраняет последствия какой-то проблемы (но не её причину), русскоговорящие программисты называют ёмким словом "костыль". Или шифруют вот так:</p>
26
// Устройство для поддержания веса тела пациента // при стоянии и ходьбе (костыль). Комментарий:<a>Хабр</a><p>Работа программистов, казалось бы, тихая и спокойная: сидят себе за компьютером и по клавиатуре стучат. Но, кажется, тишь да гладь у них далеко не всегда.</p>
26
// Устройство для поддержания веса тела пациента // при стоянии и ходьбе (костыль). Комментарий:<a>Хабр</a><p>Работа программистов, казалось бы, тихая и спокойная: сидят себе за компьютером и по клавиатуре стучат. Но, кажется, тишь да гладь у них далеко не всегда.</p>
27
<p>Порой в комментариях сквозит пассивная агрессия с лёгким налётом самооправданий:</p>
27
<p>Порой в комментариях сквозит пассивная агрессия с лёгким налётом самооправданий:</p>
28
// писать это было сложно // так что и читать должно быть не прощеКомментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Иногда от коллег высокомерно отмахиваются:</p>
28
// писать это было сложно // так что и читать должно быть не прощеКомментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Иногда от коллег высокомерно отмахиваются:</p>
29
// для тебя - никаких комментариевКомментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>А тут и до прямых угроз недалеко:</p>
29
// для тебя - никаких комментариевКомментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>А тут и до прямых угроз недалеко:</p>
30
// Джон, если ты ещё раз удалишь этот фрагмент кода, // честное слово, я тебя прибью! // Это не "что-то странное"! // Это АВТОМАТИЧЕСКАЯ ПРОВЕРКА! Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>И даже до очень-очень серьёзных угроз:</p>
30
// Джон, если ты ещё раз удалишь этот фрагмент кода, // честное слово, я тебя прибью! // Это не "что-то странное"! // Это АВТОМАТИЧЕСКАЯ ПРОВЕРКА! Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>И даже до очень-очень серьёзных угроз:</p>
31
// Если я ещё раз это увижу, начну ходить на работу с оружием.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Думаете, разговаривать с коллегами и самим собой в комментах странно? Общаться с компилятором - вот что на самом деле странно:</p>
31
// Если я ещё раз это увижу, начну ходить на работу с оружием.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Думаете, разговаривать с коллегами и самим собой в комментах странно? Общаться с компилятором - вот что на самом деле странно:</p>
32
// Мистер Компилятор, не читайте это, пожалуйста.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>И ведь знают прекрасно, что компилятор и так не видит комментарии. Или, по крайней мере, подозревают:</p>
32
// Мистер Компилятор, не читайте это, пожалуйста.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>И ведь знают прекрасно, что компилятор и так не видит комментарии. Или, по крайней мере, подозревают:</p>
33
// Иногда мне кажется, что компилятор игнорирует все мои комментарии.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Компилятору комментарии действительно не нужны. Их пишут люди - для людей. Причём есть<a>мнение</a>, что лучше бы не писали: хороший код должен быть понятен, а потому не нуждается в комментировании.</p>
33
// Иногда мне кажется, что компилятор игнорирует все мои комментарии.Комментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Компилятору комментарии действительно не нужны. Их пишут люди - для людей. Причём есть<a>мнение</a>, что лучше бы не писали: хороший код должен быть понятен, а потому не нуждается в комментировании.</p>
34
<p>Как говорил Мартин Фаулер, когда вам в следующий раз захочется написать комментарий, попробуйте сперва отрефакторить (переписать) код так, чтобы комментарий стал не нужен.</p>
34
<p>Как говорил Мартин Фаулер, когда вам в следующий раз захочется написать комментарий, попробуйте сперва отрефакторить (переписать) код так, чтобы комментарий стал не нужен.</p>
35
<p>А если комментарии всё же есть - не доверяйте им. Зачастую они нагло врут:</p>
35
<p>А если комментарии всё же есть - не доверяйте им. Зачастую они нагло врут:</p>
36
// Всегда возвращает true public boolean isAvailable() { return false; }Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>На самом деле этот метод всегда возвращает логическое значение false ("ложь"), хотя комментарий утверждает обратное.</p>
36
// Всегда возвращает true public boolean isAvailable() { return false; }Комментарий:<a>BetterProgramming</a>/ перевод Skillbox Media<p>На самом деле этот метод всегда возвращает логическое значение false ("ложь"), хотя комментарий утверждает обратное.</p>
37
<p>А как вам такое получение случайного числа:</p>
37
<p>А как вам такое получение случайного числа:</p>
38
// Этот метод, очевидно, возвращает случайное число, // выбранное счастливым кубиком int getRandom() { return 4; }Комментарий:<a>Techie Delight</a>/ перевод Skillbox Media<p>Ирония в том, что этот метод всегда возвращает число 4. Возможно, оно и правда счастливое, но от метода с таким названием ждёшь, что он будет возвращать разные случайные числа, а не каждый раз одно и то же.</p>
38
// Этот метод, очевидно, возвращает случайное число, // выбранное счастливым кубиком int getRandom() { return 4; }Комментарий:<a>Techie Delight</a>/ перевод Skillbox Media<p>Ирония в том, что этот метод всегда возвращает число 4. Возможно, оно и правда счастливое, но от метода с таким названием ждёшь, что он будет возвращать разные случайные числа, а не каждый раз одно и то же.</p>
39
<p>Если где-то есть место магии, то и до драконов недалеко:</p>
39
<p>Если где-то есть место магии, то и до драконов недалеко:</p>
40
// .==. .==. // //`^\\ //^`\\ // // ^ ^\(\__/)/^ ^^\\ // //^ ^^ ^/6 6\ ^^ ^ \\ // //^ ^^ ^/( .. )\^ ^ ^ \\ // // ^^ ^/\| v""v |/\^ ^ ^\\ // // ^^/\/ / `~~` \ \/\^ ^\\ // ----------------------------- // здесь обитают драконыКомментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Будьте осторожнее, копаясь в комментариях: вместо драконов вам могут подложить свинью. Но эта свинка окажется полезной. Называют её Safety Pig. Она предупреждает об особенно забористом и сложном коде:</p>
40
// .==. .==. // //`^\\ //^`\\ // // ^ ^\(\__/)/^ ^^\\ // //^ ^^ ^/6 6\ ^^ ^ \\ // //^ ^^ ^/( .. )\^ ^ ^ \\ // // ^^ ^/\| v""v |/\^ ^ ^\\ // // ^^/\/ / `~~` \ \/\^ ^\\ // ----------------------------- // здесь обитают драконыКомментарий:<a>plainenglish.io</a>/ перевод Skillbox Media<p>Будьте осторожнее, копаясь в комментариях: вместо драконов вам могут подложить свинью. Но эта свинка окажется полезной. Называют её Safety Pig. Она предупреждает об особенно забористом и сложном коде:</p>
41
// Внимание! Код ниже может довести до слёз. // Да хранит вас священная свинка // _ // _._ _..._ .-', _.._(`)) //'-. ` ' /-._.-' ',/ // ) \ '. // / _ _ | \ // | a a / | // \ .-. ; // '-('' ).-' ,' ; // '-; | .' // \ \ / // | 7 .__ _.-\ \ // | | | ``/ /` / // /,_| | /,_/ / // /,_/ '`-' Комментарий:<a>Хабр</a>/ перевод Skillbox Media<p>Возможно, образ свиньи выбран не случайно. В компьютерной безопасности есть термин "пляшущие свинки" - он описывает отношение пользователей к этой самой безопасности. В частности, к предупреждениям о потенциально опасном переходе - например, по ссылке, где обещают показать пляшущих свиней.</p>
41
// Внимание! Код ниже может довести до слёз. // Да хранит вас священная свинка // _ // _._ _..._ .-', _.._(`)) //'-. ` ' /-._.-' ',/ // ) \ '. // / _ _ | \ // | a a / | // \ .-. ; // '-('' ).-' ,' ; // '-; | .' // \ \ / // | 7 .__ _.-\ \ // | | | ``/ /` / // /,_| | /,_/ / // /,_/ '`-' Комментарий:<a>Хабр</a>/ перевод Skillbox Media<p>Возможно, образ свиньи выбран не случайно. В компьютерной безопасности есть термин "пляшущие свинки" - он описывает отношение пользователей к этой самой безопасности. В частности, к предупреждениям о потенциально опасном переходе - например, по ссылке, где обещают показать пляшущих свиней.</p>
42
<p>Как говорили Гари Мак-Гроу и Эдвард Фельтен, если пользователям дать выбор между пляшущими свиньями и безопасностью, они всегда выберут свиней.</p>
42
<p>Как говорили Гари Мак-Гроу и Эдвард Фельтен, если пользователям дать выбор между пляшущими свиньями и безопасностью, они всегда выберут свиней.</p>
43
<p>Комментарии - это целая фантазийная Вселенная, в которой есть место магии и драконам, драмам и сожалениям. Про неё можно написать не статью, а целую книгу или снять фильм. Может, он даже удостоился бы "Оскара" - хотя бы за эту речь:</p>
43
<p>Комментарии - это целая фантазийная Вселенная, в которой есть место магии и драконам, драмам и сожалениям. Про неё можно написать не статью, а целую книгу или снять фильм. Может, он даже удостоился бы "Оскара" - хотя бы за эту речь:</p>
44
// Я посвящаю этот код, да и вообще всю мою работу, моей жене Дарлин. // Ведь именно ей придётся содержать меня, троих наших детей и собаку, // когда мои творения войдут в релиз.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Если хотите ещё больше узнать о языке айтишников, почитайте<a>об истории словечек из цифрового мира</a>: "жучки"-баги и "печеньки"-куки, "заплатки"-патчи и прочие "облака" - про это вот всё. А если думаете, что и так прекрасно переводите с программерского на русский, -<a>пройдите наш тест</a>и подтвердите это.</p>
44
// Я посвящаю этот код, да и вообще всю мою работу, моей жене Дарлин. // Ведь именно ей придётся содержать меня, троих наших детей и собаку, // когда мои творения войдут в релиз.Комментарий:<a>Loud Programmer</a>/ перевод Skillbox Media<p>Если хотите ещё больше узнать о языке айтишников, почитайте<a>об истории словечек из цифрового мира</a>: "жучки"-баги и "печеньки"-куки, "заплатки"-патчи и прочие "облака" - про это вот всё. А если думаете, что и так прекрасно переводите с программерского на русский, -<a>пройдите наш тест</a>и подтвердите это.</p>
45
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
45
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>