@IvanIF

Как перестать комментировать всё подряд?

Когда я только начинал писать код (~ 2 года назад), то не комментировал вообще ничего. Рабочие файлы с кодом писались очень быстро, можно сказать штамповались. Но разобраться в них без пол литра было невозможно, ибо читать 500 строк сплошных символов на трезвую голову не станет никто... Дело осложнялось ещё и тем, что я обучался программированию самостоятельно, поэтому не знал общепринятых стандартов и принципов хорошего тона в коде.

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

Постепенно мой код эволюционировал во что-то более менее приятное глазу. Комментариев по прежнему было немного, а многие из немногих были и не к месту, но код однозначно стал лучше.

Так я постепенно добавлял комментарии, пока не ударился в другую крайность — комментариев встало слишком много. В этой крайности я и нахожусь сейчас. В какой-то момент я начал ловить себя на мысли о том, что 20% времени пишу код, а оставшиеся 80% обдумываю и пишу комментарии. Дело доходит даже до вот таких крайностей:

// Переменная для хранения информации о возможности клика по кнопке «Зарегистрироваться»
// true — клик разрешён, false — клик запрещён
var can_click_su = true;

У меня в голове как будто засела навязчивая мысль, которая говорит: «Закомментируй, потом не поймёшь!».
Как с этим бороться???
  • Вопрос задан
  • 834 просмотра
Решения вопроса 3
yarkov
@yarkov
Помог ответ? Отметь решением.
Писать код так, чтобы он сам себя документировал.
Давать осмысленные имена переменным и функциям, пусть длиннее, зато читабельнее.
Почитать про архитектуру, паттерны.
Рекомендую "Чистый код" Р. Мартин. Там эта тема поднимается.
Ответ написан
Комментировать
Noizefan
@Noizefan
во-первых, раз комментируешь - комментируй согласно стандартам - выбьет любую дурь
во-вторых, скажи пожалуйста, бывает у тебя такое, что ты с человеком текстом общался а через две недели перечитываешь диалог и не можешь разобраться в том что сам писал? Если бывает - тут другая клиника нужна, если нет - значит хреново ты пишешь код.
Писать код - условно, говорить на каком то языке. Мне нахрен не нужны комментарии китайца на китайском если я с ним общаюсь на английском.

Я за свою практику привык, что хорошей и плохой еды нет. Есть постоянный контроллируемый голод, а есть бешенство с жиру. Гитхабу читай побольше и будет счастье
Ответ написан
Комментировать
D1os
@D1os
Начинающий программист
Некоторые вещи интуитивно поняты и не нуждаются в комментариях. Например true - понятно, что это истина/можно/да и т.д. Поэтому такие ненужные комментарии нужно опускать, т. к. это просто загромождение кода. Или, как сказали ранее, понятные названия переменных, функций и классов в сочетании с "нормальными" значениями образуют интуитивно понятную связь.
Button_status = "Highlighted"
window_current_x = 500
is_visible = False

Если нет возможности составить нормальные имена или присутствует нестандартный, массивный и сложный код, лучше написать пояснение.
Чтобы тратить меньше времени, можно сокращать переменные, убирая лишние красивые слова. Главное, чтобы коммент был понятен.
def gcd(x, x2):
    # Нахождение наибольшего общего делителя

P.s., все примеры на Python, если что.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 7
@cicatrix
было бы большой ошибкой думать
Не бойся длинных названий переменных и методов, если код сам себя объясняет, то комментарии не нужны.
Если для себя делаю, то принял за правило объяснять самому себе в будущем, что здесь в принципе происходит.
Также комментирую нетривиальные решения. Причём, в этом случае очень подробно, иногда и с http ссылками на описание того или иного алгоритма.
В целом, если следовать этим принципам и комментариев получается много, то это верный знак того, что метод или даже целый класс надо переписать заново.
Ответ написан
Комментировать
fedorez
@fedorez
Хатуль мадан
знакомо. тоже когда-то строчил экраны зелени на VB6
как-как... надо взять и перестать комментировать всё.
я когда перешел на языки, допускающие длинные имена переменных - теперьПишуПеременныеОфигеннойДлинныКоторыеМнеПонятны.
на самом деле с этом случае, при нормальных осмысленных названиях переменных, функций, классов комментирования требует лишь очень малая часть кода - когда требуется пояснить, почему здесь именно так (нередко, кстати, это признак костыля)
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
// Переменная для хранения информации о возможности клика по кнопке «Зарегистрироваться»
// true — клик разрешён, false — клик запрещён
var can_click_su = true;


Меняешь на
var can_click_register_button = true;
Ответ написан
Комментировать
@Foxbator
var registration_button_enable = true;
Ответ написан
Комментировать
Wyrd
@Wyrd
Архитектор
Мне что-то подсказывает, что проблема у вас не техническая, скорее похоже на некое навязчивое желание «объяснить все» (вы сами об этом пишете). Попробуйте найти психотерапевта. Только не путайте с психиатром - психиатр лечит болезни (таблетками), а психотерапевт помогает разобраться в причинах своих желаний/поступков, начать по другому относится к происходящему в жизни и т.п. - к ним ходят вполне здоровые люди, которые хотят что-то в себе поменять. Я не шучу - у меня жена психотерапевт.
Ответ написан
Комментировать
@mkone112
Начинающий питонист.
Выломай слеш из клавы.
Ответ написан
Комментировать
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
По сути это философский вопрос, но я бы рекомендовал пропить курс витаминов, особенно B и попить Ноотропил с Глицином.
Месяца 3.
И потом всё придёт в норму.
Последнее особенно полезно при учёбе и умственных нагрузках, но когда витаминов B не хватает, то бывает ломота в костях.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы