Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
1 / 1 / 1
Регистрация: 13.02.2008
Сообщений: 18

Как лучше комментировать код?

25.07.2008, 19:18. Показов 10213. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня есть вопросы по коментированию кода.
1. Какой язык лучше использовать для коментариев (русский или английский)?
2. Нужно ли коментировать действие каждой строки (вплоть до "I++ // увеличение значения i")?
3. Где лучше располагать коментарии: в коде или справа от кода?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2008, 19:18
Ответы с готовыми решениями:

Как правильно комментировать код
Всем привет. Объясните, пожалуйста, как и что комментировать в коде, чтобы исходники были предельно ясными?

Как комментировать код на PHP
Может задаю тупой вопрос. НО обыскала весь интернет и не могу понять как комментить код. Вот пробовала следующее: /* */, //. НЕ...

Как удобно и быстро комментировать код
Итак, есть я знаю три способа закомментировать код на VB.NET: 1. ' (одинарная кавычка) 2. REM 3. CTRL+K, CTRL+C Но, если я...

33
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
14.03.2025, 20:28
Студворк — интернет-сервис помощи студентам
Надеюсь что в некрофилии не обвинят что такую тему откопал...

Я считаю что комментарии очень нужны и чем больше тем лучше. У меня прокомментирована практически каждая строчка, ну или смысловой блок. Я вообще сначала пишу словами че должна делать функция/метод, с указанием всяких нюансов и мыслей полезны, потом этот текст разбиваю на отдельные операции и уже к комментариям пишу код.

Я не понимаю современной концепции что код должен комментировать сам себя. Сам себя он и так всегда комментирует, но что именно он делает в общем логике программы - вот это нужно комментировать. Отдельно добивают ораторы говорящие что если код не понятен то надо его переписать так что бы было понятно и не использовать комментарии. Причем последнее заявляется очень категорично.
Я согласен лишь с часть что сложный код надо переписать на более простой Но комментарии все равно нужны

Понятное дело что
C++
1
I++; // увеличение значения i
писать не стоит, но
C++
1
I++; // увеличение значения счетчика принятых байт
вполне.

Я согласен с предыдущим автором, что комментарии должны описывать логику кода в масштабах приложения.
В коде даже становится проще ориентироваться, ты глазами бежишь и читаешь бегло и находишь то что надо.

Причем иногда комментарии очень нужны. Современное программирование во всю использует потоки, обратные вызовы и прочую магию, код становится не линейным и отследить его иногда сложно. Нужно добавлять комментарий что вот тут мы ждем другой поток, тут мы получим данные по прерываю, а тут мы вызываем функцию, а она нам ответит через колбек.
Или меняете вы запись в одной таблице, а записи в другой таблице меняются "сами" так как там foreign key. Вот как надо написать код что бы он это прокомментировал сам?

Ну и каждую функцию/метод тоже подробно описать желательно, особенно если это не checkCRC, а что то более сложное с учетом каких-нить нюансов.

Что касается языка, то если вы не пишите код который вы будете распространять на весь мир, то лучше использовать родной язык. Всякие check CRC можно и на английском писать, а более сложное описание с оборотами речи все же на родном лучше и пишется и читается.

ЗЫ главное не лениться и менять коментарии если меняется код
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
15.03.2025, 12:44
C++
1
I++; // увеличение значения счетчика принятых байт
А что, не видно, что счётчик на единицу увеличивается. Об этом надо написать?

C++
1
Received_bytes++
Правильные комментарии, на мой взгляд, бывают трёх видов:
1. Объяснение, почему выбрано такое решение (быстродействие, затраченная память, особенности железа, особенности пользователей, планирование дальнейшего развития кода). Эта инфа вообще никак не связана с кодом, в коде нет этих сведений.
2. Комментарии-заголовки. Они разбивают код на логические части. Отчасти связаны с кодом.
3. Некоторые сложные моменты, например, какие-то трудно воспринимаемые условия if.
0
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
15.03.2025, 19:02
Цитата Сообщение от Mikhaylo Посмотреть сообщение
А что, не видно, что счётчик на единицу увеличивается. Об этом надо написать?
Я хотел сказать что комментарии должны описывать не то делает конкретный код, а какие задачи он решает в общей задаче программы.
Пример может немного не корректный, да, переменные надо называть так что было понятно, но иногда бывает что у нас принимаются данные, из которых мы "выдергиваем" только именно данные, без заголовков пакетов и контрольных сумм, а из этих данных выдергиваем нужные нам (например с устройcтва идет поток телеметрии, а нас интересует только данные по температуре) и получается у нас уже будут три счетчика принятых байт и будут называться они как то Received_bytes_packet, Received_bytes_data, Received_bytes_temperature и тут лучше прокомментировать кто из них кто...
Вообщем я считаю что чем больше комментариев тем лучше, даже если они очевидные, то хуже не будет.
0
184 / 37 / 8
Регистрация: 14.04.2019
Сообщений: 238
15.03.2025, 22:27
По поводу использования русского языка. После введения многобайтной кодировки
такой кошмар стал твориться, что лучше его избегать.
Иначе рискуешь в любой момент увидеть кракозяблы вместо своего текста.
У меня был случай, что я так и не смог понять, что произошло, что это за
коды и откуда они взялись.
0
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
16.03.2025, 00:13
Как правило это выявляется сразу. То что все слетело, скорее всего надо было файл пересохранить в кодировке utf8, там вначале вроде два байта какие то добавляются, после этого все работает.
После введения многобайтной кодировки как раз все стало нормально, вот когда были 866, 1251 вот тогда проблемы иногда были
0
Модератор
Эксперт функциональных языков программирования
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
16.03.2025, 01:20
Цитата Сообщение от Alex1126 Посмотреть сообщение
Вообщем я считаю что чем больше комментариев тем лучше, даже если они очевидные, то хуже не будет.
Не соглашусь. Если код понятен без комментариев, то любые комментарии только затрудняют понимание кода. Потому что их чтение требует времени. А, возможно, из-за них код перестанет умещаться на один экран, и придётся листать вниз-вверх или влево-вправо.
0
1964 / 820 / 114
Регистрация: 01.10.2012
Сообщений: 4,775
Записей в блоге: 2
07.04.2025, 17:11
Цитата Сообщение от Alex1126 Посмотреть сообщение
Отдельно добивают ораторы говорящие что если код не понятен то надо его переписать так что бы было понятно и не использовать комментарии. Причем последнее заявляется очень категорично.
Считайте меня одним из них Пройдет не так уж много времени, и, вероятно, Вы устанете писать примечания и придете к тем же выводам
И это пройдет..
Добавлено через 29 минут
Вместо того чтобы страдать фигней с примечаниями, гораздо лучше заняться именами переменных, ф-ций и др. На первый взгляд, все очень просто: имя подлиннее, попонятнее. Но это не так
0
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
07.04.2025, 20:31
Цитата Сообщение от Igor3D Посмотреть сообщение
Считайте меня одним из них Пройдет не так уж много времени, и, вероятно, Вы устанете писать примечания и придете к тем же выводам
как правило код понятен здесь и сейчас. Я комментирую общую задачу которую он выполняет.
0
1964 / 820 / 114
Регистрация: 01.10.2012
Сообщений: 4,775
Записей в блоге: 2
07.04.2025, 21:06
Цитата Сообщение от Alex1126 Посмотреть сообщение
Что касается языка, то если вы не пишите код который вы будете распространять на весь мир,
Будете. (Здоровые) амбиции - неотъемлемая часть программиста, без этого он просто .. (не хочу быть грубым)
Цитата Сообщение от Alex1126 Посмотреть сообщение
.. то лучше использовать родной язык. Всякие check CRC можно и на английском писать, а более сложное описание с оборотами речи все же на родном лучше и пишется и читается.
Только на английском. Некоторые реагируют неадекватно: "стесняешься родного языка?" и.т.п.

Я доволен что "международный язык" - не мой родной. Англичанина корежит от "color" (без "u"), но одернуть-то нельзя. Над своим языком я бы такого издевательства не вынес. И английский подходит гораздо лучше, особенно учитывая устоявшиеся термины. Все эти "иконки", "щелкнуть мышкой", "потокобезопасность" и.т.п. просто ужасны Технический английский дисциплинирует, учит писать кратко и емко
0
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
09.04.2025, 15:10
Дело в том, что комментарии пишутся не только для себя но и для других. У нас над одним проектом могут работать несколько разных разработчиков - один прошивку для плис делает, второй микроконтролер программирует, третий программу под винды пишет. И иногда есть необходимость "поделиться" кодом, чтобы человек который делает устройство "с той стороны" посмотрел что там не так, почему не работает и прочее. Да, можно описать протокол, описать все технические ньюансы, но в процессе разработки "концепция" может и измениться и проще дать ссылку на репозиторий. А тот кто, например, с плис работает, он в си может быть не бумбум, поэтому такие понятия как "код сам себя должен коментировать" тут вообще не в кассу. Там по смыслу конечно понятно что то, но когда есть комментарии то все становится понятно.
Ну и опять же многие IDE позволяют в хинтах давать описание функции и переменным, если к ним добавлены комментарии.
Ну и уровень английского у всех разный и что бы не вызывать путаницу всякими receive_byte и received_byte нам и мне проще на русском общаться

ЗЫ Ни к чему не призываю, написал что практикую сам, однако хочу заметить что излишне прокомментированный код поймут все, а тот который сам себя комментируют не только лишь все
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
09.04.2025, 19:44
Самые настоящие комментарии - это про то, почему выбран именно этот алгоритм, а не другой (из-за скорости, из-за экономии памяти, из-за возможности распределения задач по ядрам). А просто повторять то, что написано в коде, это хрень собачья. нужно написать, на каком ядре исполняется некий кусок кода - это важно. А прочитать и разобрать некий код - это дело времени.
0
1964 / 820 / 114
Регистрация: 01.10.2012
Сообщений: 4,775
Записей в блоге: 2
13.04.2025, 09:15
Цитата Сообщение от Alex1126 Посмотреть сообщение
Да, можно описать протокол, описать все технические ньюансы, но..
Так вот где собака порылась! Оказывается, обильные примечания - это вместо документации, которую (как всегда) писать никому неохота Ну вообще-то ф-ционал примечаний и доки разный, но если в Вашем проекте это устраивает - на здоровье. А может и кого-то еще устроит - но далеко не всех
0
152 / 136 / 26
Регистрация: 12.12.2020
Сообщений: 1,135
13.04.2025, 18:25
Цитата Сообщение от Igor3D Посмотреть сообщение
Так вот где собака порылась! Оказывается, обильные примечания - это вместо документации, которую (как всегда) писать никому неохота Ну вообще-то ф-ционал примечаний и доки разный, но если в Вашем проекте это устраивает - на здоровье. А может и кого-то еще устроит - но далеко не всех
документация пишется в конце. А писать документацию в процессе работы и по каждому чиху обновлять ее, это нереально
0
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
15.04.2025, 19:05
Аналитики пишут user story перед началом разработки, техписы - раздел "Порядок действий" в РЭ - после разработки, на основе user story. Это не вся инфа, но база эксплуатационной документации.
Но комментарии кода с этим вообще не пересекаются.
Иногда по ГОСТ требуют проектную документацию, и это ближе к комментариям, но тоже зачастую другое...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2025, 19:05
Помогаю со студенческими работами здесь

Как правильно комментировать html код
Мне нужно дописать class(css) к ссылке <a href... Вообщем вот код: $tpl->set( '', "<a href=\"" . $full_link . "\">"...

Комментировать код
/*Написать программу, которая выполняет следующие действия: • вводит с клавиатуры данные в массив, состоящий из десяти структур; записи...

Комментировать код
Код просмотра процессов удаленного компьютера procedure TForm1.Button1Click(Sender: TObject); var hSnapShot: THandle; ProcInfo:...

Комментировать код полностью
{Поиск минимального пути в лабиринте Лабиринт задается с помощью текстового файла. Каждый символ является клеткой лабиринта и означает:...

Найти все натуральные числа, не превосходящие N, и делящиеся на каждую из своих цифр (комментировать код!)
найти все натуральные числа, не превосходящие N, и делящиеся на каждую из своих цифр (я здесь вообще ничего не понял, кому не трудно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru