HTML Diff
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>