Про комментарии в коде
Случилась однажды со мной такая история, которая навсегда укрепила мою уверенность в том, что комментарии в коде это не просто дань правильности и стандартам, а жизненно-важная необходимость.
А было это на заре моей карьеры аналитика. Вот буквально недавно писал про начало карьеры, как оптимизировал работу отдела аналитики.
Прилетела мне задача от руководителя отдела: необходимо разработать программу, которая бы формировала документ для склада. В документе должны быть: артикул, склад поставки, количество штук для этого склада. Т.е. надо сначала подбить и посчитать динамику по товарам и складам, а также остатки по этим складам, да еще и взять остатки на нашем складе. Плюс к этому нужно, чтобы программа сформировала список товаров и их количества по коробам, чтоб сэкономить время склада, да и нам понимать, сколько коробов и куда мы везем. Вроде бы всё просто. Но вот чтоб да, так нет. Задача была для Озона, а у них в 2022 году (не знаю, как сейчас, не работаю там давно) были такие лабиринты в документах и отчетах, что было очень сложно что-то найти и обработать по-человечески. И вот я взялся за работу со всей основательностью, не спал ночами, кодил до упаду. И все таки накодил. Времени дано было всего ничего, поэтому получилось кривовато. Но, как оно бывает, я был твердо уверен, что вот разгребу текущие задачи и сразу же всё подредактирую как надо. Ага, конечно. Забыл я про это дело, работает ведь. И никто не жаловался, все были довольны.
Но вот прошло буквально 1,5 месяца, и ко мне прибегает руководитель отдела с вытаращенными от ужаса глазами и кричит на меня: "Всё поломалось, ничего не работает, понадеялись на программу, а она вот так, не хочет... А нам складу отправлять, а времени руками всё считать и формировать нету, и всё, нам конец!" Паникой делу не поможешь, и я взялся вспоминать, что там я такое накодил, и что же могло сломаться.
Правду говорят, что твой код через несколько месяцев, это совершенно чужой код. Открыл я это полотнище, и обомлел от ужаса: куча процедур, функций, конкатенаций, циклов, всяких "Если - То - Иначе - То", а комментариев нет... Страшное дело, правда. Руководство нервничает, работники склада звонят и тоже нервничают, я нервничаю, просто дичь творится. Воздух вокруг меня будто плавился. Я лихорадочно ищу, что же там могло пойти не так.
В общем, не буду вдаваться в подробности, но в результате оказалось, что Озон поменял название одного из столбцов одного из многочисленных отчетов, которые в этой программе сводились друг с другом. И всё, программа легла... А работать хорошо с индексами я тогда еще не умел.
Так вот, если б я писал комментарии к своему коду, объяснял бы что и как там делается, то всё это можно было найти за секунды. Но нет же, куда там.
С тех пор, урок я выучил и больше не оставляю свои наработки без должного комментирования.
· 12.04.2025
Не путайте тёплое с мягким. Давайте честно, если бы код был написан хорошо, то его можно было бы понять и через 10 лет без всяких комментариев. Ваш пример и миллион других, как раз показывают что комментарии в коде это признак «кода с запашком». Если у вас появляется желание написать коммент, лучше подумайте как сделать код понятнее. Комментарии это инструмент, и применять его нужно к месту, например там где специально жертвуют читаемостью в пользу какой-то лютой оптимизации.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 12.04.2025
Александр, интересное мнение🤔 Обычно более опытные коллеги мне и многим другим указывали именно на то, что комментарии являются признаками "хорошего" разработчика, а если их нет, то и разработчик не ахти какой... И всегда указывали на то, что код без комментов сложно понять, долго в нем копаться. В частности, в сотый раз это мнение прочитал в книге Никиты Зайцева "Путь 1С-разработки. Не спеша, эффективно и правильно". Потому и засело это в моей голове. В общем, благодарю вас, мне нужно обдумать свои взгляды на комменты в коде😌
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 12.04.2025
Кстати, любопытства ради спросил нейросеть что она думает на этот счёт, и вот ответ (в целом, это как раз то о чём я писал выше):
Моё мнение: Хороший код должен быть самодокументируемым (чёткие названия переменных, разделение на небольшие функции, явная структура). Комментарии нужны там, где код не может объяснить себя сам (особенно в сложной логике, хаках, нестандартных решениях). Избыток комментариев — признак проблем с читаемостью кода.
Итог: Комментарии — это не "хорошо" или "плохо", а вопрос целесообразности. Пишите код так, чтобы он говорил сам за себя, но не бойтесь добавлять пояснения там, где они действительно нужны.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 12.04.2025
Я полностью согласен что коменты это "код с запашком" но докстринги надо указывать точно в функциях, хоть в основном и понятно что должна функция делать
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 12.04.2025
Но новичкам или в новой технологии коменты думаю позволительно использовать так как не всегда можно сразу сделать понятный код
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 13.04.2025
По моему мнению в общем случае должно быть так: Комментарии должны объяснять зачем написан блок кода Что делает код должны объяснять идентификаторы
Пример: «Функция загружает документы по АПИ» - плохой комментарий, что делает функция должно рассказывать название функции «Формируем zip архив из файлов потому что апи сервиса позволяет загрузить только один файл» - хороший комментарий, рассказывает для чего была написана логика
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 13.04.2025
По мне так оба варианта безполезные.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён