Почему '//', разрабатывают многострочный комментарий плохо (в Java)?

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

См. Вопрос переполнения стека Как увеличить размер стека Java? .

21
задан skaffman 25 June 2011 в 12:08
поделиться

7 ответов

Actually, I've been using // for multiple lines for years and never suffered any serious problem with it. I'm not a big fan of /*...*/ anymore because you get:

/* I'm commenting out all this code for a moment
  ...
  /* And here is a multi line comment
     that was hidden in the middle */
  ...
*/ 

Thank the compiler it gets upset and tells me of the problem.

Where as:

...
// And here is a multi line comment
// that was hidden in the middle
...

becomes with a single macro:

// ...
// // And here is a multi line comment
// // that was hidden in the middle
// ...

and is happily reversed with another single macro that returns it back to the original form

and as for:

  // but now you have 
  // trouble edditing
  // your comments so
  // that every  line
  // is of equal size

I say:

  // Tough, this is a piece of code not a 
  // published novel
  // and if varying lengths
  // make
  // it hard for you to read then heaven
  // forbid how you handle the code

And don't you just hate edditing:

/******************************************************************
 * Program: Foo.java                                              *
 ******************************************************************
 * Author:  Codey Art Work                                        *
 * Purpose: To do something with something and get something not  *
 *          forgetting something else.                            *
 ******************************************************************
 * Revision History:                                              *
 ******************************************************************
 *  Date  | Author |                                              *
 *--------|--------|----------------------------------------------*
 * 1/2/09 | Jack   | Now I have to keep all my comments in this   * 
 *        |        | tiny little space and if I edit it I just go *
 *        |        | aaarrrrrrggggggggggghhhhhhhhhhh!!!!!!!!!!!!! *
 ******************************************************************/

which always seem to appear in places insisting on /* */ over //

And I'd just like to say to the Stack Overflow guys, this is really cool editor. Doing code samples is so easy.

39
ответ дан 29 November 2019 в 06:46
поделиться

It makes modifying and formatting long comments extremely painful.

Most editors provide some sort of wrapping facility to automatically wrap text into lines of readable length. If every line starts with a '//' those will get moved around, then have to be deleted, and new ones re-inserted. All that tedious work can be avoided using '/* */ style comments.

4
ответ дан 29 November 2019 в 06:46
поделиться

may be for code formatting stuff ... if you did auto formatting (indentation) the codes will looks ugly.

in some text editors, comments using /** ... **/ could be folded so it will make easier to read the code.

0
ответ дан 29 November 2019 в 06:46
поделиться

Иногда даже комментирование большого количества кода с помощью // может быть довольно ужасным.

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

выберите большой блок кода, который уже содержит некоторые // закомментированный многострочный код, нажмите ctrl- / и закомментируйте все, затем нажмите ctrl-shift-f, чтобы отформатировать код, если по какой-то причине модуль форматирования имеет дело с комментариями, он переформатирует ваш код. Затем еще раз выделите все это и раскомментируйте с помощью ctrl- / еще раз ...

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

Я признаю, что это анекдотично, С тех пор я перенастроил eclipse, чтобы больше не делать этого, но теперь я также воздерживаюсь от использования // для такой большой полосы комментариев кода в пользу / * * /. Однако есть много других вариантов, которые лучше использовать:

/ ** для комментария Javadoc * / таким образом комментарии доступны в полном коде, документации и т. Д. ... комментарий один раз, используйте везде.

Если вы знаете, вы собираетесь создать многострочный комментарий, который не является java-документом, а затем запуская его с / *, IDE позаботится обо всем остальном, что касается форматирования. Поэтому, чтобы объяснить странные алгоритмы исправления в коде, я буду использовать / * * / вместо //. Я оставляю его для одинарного лайнера, когда это необходимо.

Мои 2 цента

Однако есть много других вариантов, которые лучше использовать:

/ ** для комментария Javadoc * / таким образом комментарии доступны в полном коде, документации и т. Д. ... комментарий один раз, используйте везде.

Если вы знаете, вы собираетесь создать многострочный комментарий, который не является java-документом, а затем запуская его с / *, IDE позаботится обо всем остальном, что касается форматирования. Поэтому, чтобы объяснить странные алгоритмы исправления в коде, я буду использовать / * * / вместо //. Я оставляю его для одинарного лайнера, когда это необходимо.

Мои 2 цента

Однако есть много других вариантов, которые лучше использовать:

/ ** для комментария Javadoc * / таким образом комментарии доступны в полном коде, документации и т. Д. ... комментарий один раз, используйте везде.

Если вы знаете, вы собираетесь создать многострочный комментарий, который не является java-документом, а затем запуская его с / *, IDE позаботится обо всем остальном, что касается форматирования. Поэтому, чтобы объяснить странные алгоритмы исправления в коде, я буду использовать / * * / вместо //. Я оставляю его для одинарного лайнера, когда это необходимо.

Мои 2 цента

Поэтому, чтобы объяснить странные алгоритмы исправления в коде, я буду использовать / * * / вместо //. Я оставляю его для одинарного лайнера, когда это необходимо.

Мои 2 цента

Поэтому, чтобы объяснить странные алгоритмы исправления в коде, я буду использовать / * * / вместо //. Я оставляю его для одинарного лайнера, когда это необходимо.

Мои 2 цента

1
ответ дан 29 November 2019 в 06:46
поделиться

Идея состоит в том, что многострочный текстовый комментарий - это одна сущность, которую вы хотите логически объединить. Разрывы строк в таком комментарии - не более чем место для переноса текста, поэтому разбивать его на множество «отдельных» комментариев не имеет смысла. Следовательно, вы создаете один блок комментариев вокруг всего этого - используя / * * /.

Для комментирования кода каждая строка представляет собой отдельную логическую единицу, поэтому иногда можно использовать последовательные символы «//». Это особенно верно, если по какой-то причине отдельные строки могут быть закомментированы "внутрь", но не все из них. Хотя, если вы хотите закомментировать весь код блока, где никогда не будет смысла частично комментировать его, вы все равно можете предпочесть использовать / * * / - снова, чтобы сгруппировать все вместе логически и визуально.

12
ответ дан 29 November 2019 в 06:46
поделиться

Скажу, что я бы не назвал это "плохим". На самом деле, это вопрос условности, как говорили другие. По сути, в этом нет ничего плохого, за исключением того, что он может сделать многострочные комментарии немного более неприятными (с точки зрения нажатия клавиш).

Честно говоря, я думаю, что это двойной стандарт javadoc. Javadoc требует:

/**
 * Validates a chess move. Use {@link #doMove(int, int, int, int)} to move a piece.
 * 
 * @param theFromFile file from which a piece is being moved
 * @param theFromRank rank from which a piece is being moved
 * @param theToFile   file to which a piece is being moved
 * @param theToRank   rank to which a piece is being moved
 * @return            true if the chess move is valid, otherwise false
 */

, и я не понимаю, почему повторяющийся "*" лучше, чем "//". Итак, для меня нет ничего присущего // быть плохим (потому что редакторы можно настроить так, чтобы они автоматически добавляли их в многострочные комментарии), а просто условностями и обычной практикой.

0
ответ дан 29 November 2019 в 06:46
поделиться

Я всегда думал, что комментарии в стиле / * * / необходимы для многострочных комментариев, потому что // было разрешено «в нескольких строках подряд для комментирования участков кода». Инструменты форматирования кода должны иметь возможность легко отличать многострочные комментарии от закомментированного кода.

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

При этом многие правила стиля, по крайней мере, немного произвольны, поэтому, возможно, не было веской причины, по которой в соглашениях о коде для языка программирования Java указано / * Комментарии / style требовались для многострочных комментариев.

0
ответ дан 29 November 2019 в 06:46
поделиться
Другие вопросы по тегам:

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