Комментарий Java в конце скобки/блока
Является ли принятой практикой на языке программирования Java прекращение скобки для блока кода с комментарием, вкратце объясняющим, какой код блокирует скобки? Я лично думаю, что они бесполезные комментарии, которые загромождают читабельность кода, но, возможно, я могу ошибаться. Например:
public void myMethod(int foo) {
// some code
if (foo == 2) {
for (int i = 0; i < myMax; i++) {
while (true) {
// some more code
} // end while
} // end for
} // end if
} // end myMethod(int)
Является ли практика комментирования блоков кода аналогичным образом принятой практикой?
Ответы
Ответ 1
Это не совсем плохая практика, но это смертельный побочный эффект плохой объектно-ориентированной практики кодирования!
Кроме того, это нарушает правила стиля и принципы "самодокументирующего кода" . У вас никогда не должно быть такого количества скобок или метода, который достаточно запутан, чтобы запутать читателя о размещении скобок, вместо этого инкапсулируйте эту функциональность в другой метод, который хорошо документирован.
Скобки подразумевают либо циклические, либо сложные логические цепочки if-else, хорошая практика программирования заключается в том, чтобы метод выполнял ровно одну вещь и делал это хорошо, а затем создавал вашу программу из этих меньших, распыленных методов. Я бы прочитал семантический фрагмент Батлера Лэмпсона "Советы по разработке компьютерных систем" . В нем рассказывается о том, как разработать хорошее программное обеспечение.
По существу, не комментируйте это, потому что:
- Он нарушает правила стиля
- Он показывает плохое объектно-ориентированное программирование - распыляет ваши функции!
- Это смертельный побочный эффект практики кодирования, который противоречит основополагающим концепциям создания Java - инкапсуляции, в частности, информации, скрывающей
- Это нарушает концепцию самодокументирующего кода.
- Другие программисты посмеются над вами.
Ответ 2
Я считаю, что это, как правило, НЕ хорошая практика. Как всегда с правилами могут быть исключения, но очень редки.
Это не очень хорошая практика, потому что
- Современные редакторы выделяют открывающий кронштейн, когда вы помещаете курсор на закрывающий и наоборот.
- Самое главное: если есть возможность не видеть начало предложения, это означает, что метод огромен (более половины страницы), что является плохой практикой.
- Он добавляет шум в код, который смущает читателей, которые привыкли к более привычному стилю Java-кодирования.
- Включение комментария LordScree-Joachim Sauer: эти комментарии будут
быть болью в шее для поддержания. Поэтому, скорее всего, он не будет поддерживаться, и информация, как правило, будет несовместима с реальностью.
Ответ 3
Это зависит от того, насколько сложным является метод или функция. Например, если у вас есть что-то, что может быть легко прочитано и понято, потому что на самом деле не было бы смысла заканчивать КАЖДУЮ строку с комментарием, объясняющим, что часть закончилась. Это то, что для отступов и разрывов строк. Однако, если у вас есть что-то действительно сложное и влияет на основную часть вашего кода, тогда вы должны указать, где заканчивается этот код и что делает этот раздел.
Ответ 4
Я делаю это только тогда, когда есть место в коде, у которого много замыкающих друг друга скобок. Но не для каждой фигурной скобки. В основном я, кажется, использую его для циклов, чтобы вы могли легко увидеть, что такое повторяющийся блок кода.
Что-то похожее на это:
// ...
file.Close();
}
}
}
}
}
}
Затем он добавляет некоторые комментарии:
// ...
file.Close();
}
}
}
}//for: each file
}
}
Ответ 5
Если есть вложенные блоки такого же типа, это может ввести в заблуждение, а не делать добро. Скажем, у вас есть 4 или 5 вложенных оператора if (имейте в виду, что это только пример, демонстрирующий ситуацию, независимо от того, "вы должны отделить эти" или "сделать способ" ), в этом случае у вас будет 4 или 5 другой//конец, если секвенирован. Через некоторое время вы сбиваете с толку, какой "конец, если" для какого утверждения, заставляет вас тратить лишние усилия бессознательно, чтобы просмотреть фактические коды/утверждения, потому что он не всегда такой же чистый/короткий, как ваш пример.
Ответ 6
ИМО, это мало помогает. Код внутри цикла или оператор if не должен быть слишком большим.
Это помогло бы, если бы внутри цикла было 500 строк.