Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров46K

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



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

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

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


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



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

В итоге, мы включили 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

Заключение


В треде было еще очень много интересного, прочитать все на английском можно здесь. Вообще, если этот пост зайдет, думаю, что позже соберу список самых интересных комментариев, которые встречались именно в моей практике. А какие встречались вам? Буду рад почитать в комментах.
Теги:
Хабы:
Всего голосов 50: ↑38 и ↓12+34
Комментарии51

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань