Лучшие комменты в исходном коде

в 13:02, , рубрики: исходный код, комментарии, Программирование, разработка, Читальный зал, юмор на хабре

Привет. Я здесь писал еще не очень много, но успел попробовать несколько форматов статей. Здесь были интервью с некоторыми IT специалистами из компании в которой я работаю, переводы, гайды… Что-то зашло, что-то нет. И вот, сегодня я решил попробовать новый для себя формат.

Лучшие комменты в исходном коде - 1


В свободное время я иногда люблю посидеть на Quora — отвечаю на вопросы других участников, или просто читаю ответы на интересные вопросы. На днях мне попался один, довольно популярный вопрос. У треда больше тысячи подписчиков и 100+ ответов. А вопрос такой: какой лучший комментарий вам встречался в исходном коде? (Ориг. What is the best comment in source code that you have ever encountered?)

Знаю, что такие треды есть и на stackoverflow, и на reddit, но т.к. я вдохновился ответами из Quora, решил сделать подборку именно оттуда. Просмотрел большую часть ответов и выбрал парочку, которые зашли больше всего.

Ответ пользователя Costya Perepelitsa

Лучший комментарий, который я когда-либо видел, наверное, Safety Pig (Свинья Безопасности):

Лучшие комменты в исходном коде - 2

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

В итоге, мы включили Safety Pig в часть нашего процесса отладки и повышения безопасности:
«То, как этот код структурирован, особенно затрудняет обнаружение утечек памяти. Добавьте Safety Pig и проводите свои изменения через Valgrind перед каждым коммитом».
«Здесь компилятор не может обеспечить безопасность типов, поэтому мы добавили Safety Pig на всякий случай».
«У меня пока нет юнит-тестов, но я добавил в них свинью». (почти сработало)

Для тех из вас, кто хотел бы иметь собственную Safety Pig — игнорируйте первую строку. Блоки кода Quora автоматически удаляют начальные пробелы в первой строке.

1. .
2.                         _
3. _._ _..._ .-',     _.._(`))
4.'-. `     '  /-._.-'    ',/
5.   )                     '.
6.  / _    _    |             
7. |  a    a    /              |
8.    .-.                     ;  
9.  '-('' ).-'       ,'       ;
10.     '-;           |      .'
11.                       /
12.        | 7  .__  _.-   
13.        | |  |  ``/  /`  /
14.       /,_|  |   /,_/   /
15.          /,_/      '`-'

Ответ пользователя Sasha Krassovsky

Однажды я просматривал исходный код каких-то рандомных студенческих игр, которые я нашел на DigiPen, когда вдруг увидел это:

/* Do NOT delete this comment */

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

Там была ошибка LNK1000: «неизвестная ошибка; обратитесь к документации для вариантов технической поддержки». Почему этот комментарий был необходим, навсегда останется загадкой.

Ответ пользователя Rishi Kumar

Лучшее, что мне приходилось видеть, попалось в сложной программе:

1. //Fu*k whoever wrote this shit

И потом, примерно через пять строк это:

//oh god it was me

Ответ пользователя Chen Xu

Однажды я увидел это:


1. //
2. //                       _oo0oo_
3. //                      o8888888o
4. //                      88" . "88
5. //                      (| -_- |)
6. //                      0  =  /0
7. //                    ___/`---'___
8. //                  .' \|     |// '.
9. //                 / \|||  :  |||// 
10.   //             / _||||| -:- |||||- 
11.   //            |   | \  -  /// |   |
12.   //            | _|  ''---/''  |_/ |
13.   //              .-__  '-'  ___/-. /
14.   //          ___'. .'  /--.--  `. .'___
15.   //       ."" '<  `.____<|>_/___.' >' "".
16.   //      | | :  `- `.;` _ /`;.`/ - ` : | |
17.   //         `_.   _ __ /__ _/   .-` /  /
18.   //  =====`-.____`.___ _____/___.-`___.-'=====
19.   //                       `=---='
19.   //
20.   //
21.   //  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22.  //
23.  //            God Bless         No Bugs
24.  //

Статуя Будды благословляет твой код быть свободным от багов. Смеялся над этим какое-то время.

Из ответа пользователя Somnath Mishra

Когда-то давно я видел похожий тред на Stackoverflow и там поделился некоторыми самыми забавными комментариями, с которыми я сталкивался. Да я и сам писал много забавных комментариев, но не буду делиться ими здесь по понятным причинам.

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

1. // Replaces with spaces the braces in cases where braces
2. // in places cause stasis                                                           
3. $str = str_replace(array("{","}")," ",$str);

(пер. Заменяет пробелами скобки в тех местах, где они вызывают стаз)

На английском звучит впечатляюще — две строчки комментария, а в них 6 рифмующихся слов.

Немного черного юмора:

1. double penetration; // ouch

Код может сделать человека атеистом:

1. //When I wrote this, only God and I understood what I was doing    
2. //Now, God only knows                                                  
3. // Update: I am an atheist now!

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

1. // I am not sure if we need this, but too scared to delete.

Раздраженный программист:

1. // I am not responsible of this code.
2. // They made me write it, against my will.

(пер. Я не отвечаю за этот код. Они заставили меня писать его против моей воли)

Злой программист:

1. // no comments for you
2. // it was hard to write
3. // so it should be hard to read

Заключение

В треде было еще очень много интересного, прочитать все на английском можно здесь. Вообще, если этот пост зайдет, думаю, что позже соберу список самых интересных комментариев, которые встречались именно в моей практике. А какие встречались вам? Буду рад почитать в комментах.

Автор: VitaliSergey

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js