Ответ 1
Это обсуждалось до смерти.
Я просто укажу вам на Джефф Атвуд замечательный пост по теме, который поражает гвоздь прямо на голове.
Есть текущие мелкие дебаты, в которых я работаю над эффективностью комментариев в коде. Один из лидеров дал указание своим разработчикам не использовать комментарии, поскольку они слишком "старомодны", а еще несколько разработчиков указали, что они никогда не используют комментарии, потому что они чувствуют, что все, что они делают, загромождает код.
Я всегда очень придерживался практики, когда я комментирую верхнюю часть каждого файла с помощью базового блока комментариев, комментирует каждое определение метода/класса/etc, а затем комментирую любое место в коде, где, я думаю, могу прийти назад через 6 месяцев и подумайте про себя: "WTF".
Ясно, что это субъективно, но мне любопытно узнать, есть ли у кого-нибудь действительно хорошие аргументы или опыт для того или другого.
Это обсуждалось до смерти.
Я просто укажу вам на Джефф Атвуд замечательный пост по теме, который поражает гвоздь прямо на голове.
За всю мою карьеру я никогда не сталкивался с этим замечательным зверским "самодокументирующим кодом". Может быть, мне просто не повезло, но я начинаю подозревать, что на самом деле этого не существует.
Время от времени я просматриваю код, который так элегантно разделен, имеет такие убедительно очевидные имена методов, полей и переменных, которые все, что мне нужно знать, очевидно из кода.
В общем случае только очень хорошие гуру кода пишут такой код. Остальные из нас сожрают что-то, что работает.
"Один из лидеров дал указание своим разработчикам не использовать комментарии, поскольку они слишком" старомодны ", а еще несколько разработчиков указали, что они никогда не используют комментарии, потому что они чувствуют, что все, что они делают, загромождает код".
Если бы я когда-либо слышал разработчика, с которым я работал так, я бы исправил их. Если бы у меня не было необходимого ранга, чтобы исправить их, я бы оставил работу.
Очень четко написанный код с хорошими идентификаторами - материал, иногда называемый "самодокументирующимся" - отлично подходит для иллюстрации того, что делает код. Это прекрасно, насколько это возможно. Задача комментариев - объяснить почему.
Проблема с комментариями заключается в том, что они, как правило, остаются долго после того, как код, который был прокомментирован, изменился или даже был удален.
Как правило, я бы просто прокомментировал открытый API и трудно понял алгоритмы.
Не используйте комментарии для объяснения того, что вы сделали - для чего предназначен код, используйте комментарии, чтобы объяснить, почему вы это сделали.
Этот вопрос, как правило, обсуждается много, но вот мои US $0.02 по теме:
Diomidis Spinellis написал хороший столбец для столбца IEEE (цитируется в его блоге), излагая проблему и несколько решений:
При комментировании всегда была пара от нажатия клавиш от катастрофы: повторение функции кодов в Английский. И это когда проблемы начать.
Следует написать комментарий перед кодом или перед функцией, чтобы в следующий раз посмотреть на функцию, которую он/она может сразу узнать, какова цель этого кода.
Мне часто случалось, что я пишу код, а потом забыл цель этого. поэтому я привык писать комментарий перед кодом.
То, что я хотел бы видеть в комментариях, объясняет, почему метод, который является очевидным и намного более простым, чем метод, используемый в коде, не работает.