Что вы думаете о периодах / полных остановках в комментариях к коду? [закрыто]


27

Я видел это в SO Tavern , поэтому я размещаю вопрос здесь. Я подумал, что это интересный вопрос. (Конечно, это не относится к SO, но я думаю, что здесь все в порядке.)

Добавляете ли вы точки (или, как писал ОП, «полные остановки») в комментарии к коду?

Чтобы это было актуально, зачем ?


2
Иногда я делаю, а иногда нет. Это зависит от комментариев и от того, что легко читать.
Тим

Ответы:


29

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

// This function returns an average of two integers. Note that it may
// return an irrelevant result if the sum of a and b exceeds the int
// boundaries.

int avg(int a, int b)   // make it static maybe?
{
    // A better algorithm is needed that never overflows
    return (a + b) / 2; 
}

4
+1. Это так похоже на мой стиль комментирования, что дало мне ложную дежавю. :)
Бобби Столы

26
Нет, точка останова - для обозначения конца предложений. Неважно, есть ли у вас один или несколько.
Ладья

2
<шутка> Не лучше ли было бы проверить, не превышают ли границы int? </ joke>
Дэн Розенстарк

2
@ Яр: среднее всегда между a и b, которые по определению всегда находятся в пределах границ, верно? ;)
Моджуба

8
Все мои строки заканчиваются нулем, поэтому правильный комментарий всегда должен заканчиваться на '\ 0'. Вы не хотите, чтобы следующий парень, смотрящий на ваш код, прочитал до конца его мысли?
CodexArcanum

26

Да, потому что комментарии на английском, а правильный английский использует знаки препинания.


2
Как насчет текстовых сообщений?
Моше

4
@ Моше, текстовые сообщения вряд ли на английском.
Доминик Макдоннелл

8
Вряд ли правильный английский, но я все еще использую пунктуацию в них. Пунктуация предназначена для того, чтобы помочь читателю понять, что именно задумал автор - это относится к любому языку, ИМХО.
cjmUK

@cjmUK, Лол, да, и я тоже. Я думал, что Моше имел в виду причину, по которой мы не будем использовать пунктуацию, так как я регулярно получаю сообщения типа «что до свидания», которые толкают меня к стене
Доминик МакДоннелл

Я хочу, чтобы все было в порядке
cjmUK

17

Добавляете ли вы точки (или, как писал ОП, «полные остановки») в комментарии к коду?

Чтобы это было актуально, зачем?

По той же причине я добавляю их при написании «нормального» текста - они являются частью письменного языка, и в них не должно быть ничего особенного. Я использую их одинаково при написании комментариев (одной строки) и целых абзацев.

Исходный код не является обычным текстом, и поэтому мы используем разные правила для него. Просто ;-)


Мой друг никогда не запирает слова в электронных письмах ... потому что это в Интернете. Для меня это нормально, когда вы приспосабливаете свое письмо к техническим ограничениям, таким как SMS, но чем электронные письма или исходный код отличаются от текста в письмах и книгах?
LennyProgrammers

1
@ Lenny222 - Не уверен, что вы спрашиваете здесь. Письма должны быть написаны как обычный текст; как будто ты пишешь письмо, как говоришь. Как они на самом деле написаны (и СМС, о боже, не начинайте меня с СМС :) Исходный код не подчиняется тем же правилам, что и обычный текст, потому что он имеет свои собственные правила синтаксиса.
Ладья

2
Для меня комментарии к исходному коду предназначены для чтения людьми. Почему должно иметь значение, находится ли некоторая информация в отдельном документе спецификации или встроена в комментарий исходного кода?
LennyProgrammers

@ Lenny222 - Что-то произошло со мной, так что между нами нет недоразумений. Мы сейчас говорим об исходном коде или комментариях в нем? Если это второй случай, то я прошу прощения, потому что я неправильно понял вас. В этом случае действуют те же правила, что и для обычного текста (для комментариев). В реальном исходном коде (который читается компилятором / интерпретатором) я не вижу, как могут следовать те же правила.
Ладья

1
Да, я думаю, что мы согласны друг с другом, не зная. ;)
LennyProgrammers

9

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


1
Периоды для конца предложения. Комментарии не обязательно являются полными предложениями.
Джон Б. Ламбе

Комментарии, как правило, должны быть предложениями. Если нет, я должен спросить, почему нет. Если ваши комментарии настолько короткие, что они не являются предложениями, возможно, они очевидны и потому излишни?
quick_now

5

Если я напишу полное предложение (или больше), тогда да. Если нет, то иногда нет, но обычно все еще да.

Я также иногда схожу с ума и использую восклицательные знаки, знаки вопроса и т. Д .;)

Что касается того, почему, это отчасти потому, что я такой особенный, а отчасти потому, что я считаю, что соответствующая пунктуация может добавить много ясности.


Если вы используете вопросительные знаки, понимаете ли вы свой собственный код?
Моше

@Moshe: Обычно это TODO, когда я еще не до конца понимаю свой собственный код.
Адам Лир

2
@Moshe - Почему комментарии не могут включать вопросы? Вопросы могут быть риторическими. На самом деле, я часто с нами? в моих комментариях - при описании условного кода, а не сухого объяснения логики, часто яснее описать логику как вопрос. Например, "Были ли выполнены квалификационные критерии? Если нет, выведите предупреждение пользователю".
cjmUK

1
Работая с большими проектами и многими соавторами, я часто нахожу эти вопросительные комментарии наиболее важными.
LennyProgrammers

3

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

Еще один момент, который может иметь значение, - это избегать восклицательных знаков, особенно кратных . Пример:

    // Though loop is labor-intensive, performance is fine with with 95K cases!!!

а также

    // This code really sucks!

С другой стороны, вопросительные знаки иногда очень полезны:

    // TODO: What does Crojpler.bway() actually do?

1

Это зависит. Если я напишу большой правильный параграф, объясняющий, что делает блок кода, то я выделю его правильно, как и любой другой фрагмент правильного написания. OTOH, когда я просто комментирую одну строку кода, тогда я этого не делаю.

Зачем? - Подобно тому, почему я пишу электронные письма, используя правильное написание, в то время как я мог бы использовать сокращенные предложения в SMS-сообщениях. В одном случае я сижу, чтобы написать правильный блок текста, поэтому я просто автоматически «делаю это правильно», в то время как в другом это просто краткая заметка, чтобы донести смысл.

Реальные примеры из моего кода:

Быстрый комментарий к заметке:

// check for vk_enter

«Правильный» метод документации:

// This method sets up a workspace tab with the given name. Each MDI window has a parent
// workspace specified when it's saved. The code which loads each MDI window then point it to
// the correct workspace.

Разработчик .NET, а? ;-)
Моше

@Moshe: Java на самом деле. Это код из очень большого и сложного апплета, в основном как настольное приложение Swing, за исключением того, что он запускается в браузере. :)
Бобби Столы

Я думал, что MDI - это термин .NET.
Моше

@Moshe: нет, это универсально ( en.wikipedia.org/wiki/Multiple_document_interface ).
Бобби Столы

1

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


1
Как насчет второго человека?
daviewales

0

Я всегда буду использовать правильные прописные буквы и знаки препинания при создании комментариев XML, которые я ожидаю увидеть в IntelliSense и в нашей сгенерированной документации . Это гораздо более формальные конструкции и должны рассматриваться как таковые.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.