1.2 – Комментарии в C++
Комментарий – это заметка, удобная для чтения программисту, которая вставляется непосредственно в исходный код программы. Комментарии игнорируются компилятором и предназначены только для использования программистом.
В C++ есть два разных стиля комментариев, которые служат одной цели: помочь программистам каким-то образом документировать код.
Однострочные комментарии
Однострочный комментарий C++ начинается с символов // , которые указывают компилятору игнорировать всё, от символов // до конца строки. Например:
Обычно однострочный комментарий используется для быстрого комментария к одной строке кода.
Наличие комментариев справа от строки может затруднить чтение и кода, и комментария, особенно если строка длинная. Если строки достаточно короткие, комментарии можно просто выровнять (обычно по позиции табуляции), например:
Однако, если строки длинные, размещение комментариев справа может сделать ваши строки очень длинными. В этом случае однострочные комментарии часто помещаются над строкой, которую они комментируют:
Примечание автора
Приведенные выше инструкции представляют собой одну из наших первых встреч с фрагментами кода. Поскольку фрагменты не являются полноценными программами, они не могут быть скомпилированы сами по себе. Они нужны, чтобы кратко продемонстрировать конкретные концепции.
Если вы хотите скомпилировать фрагмент кода, вам нужно превратить его в полную программу, чтобы она могла скомпилироваться. Обычно эта программа будет выглядеть примерно так:
Многострочные комментарии
Пары символов /* и */ отмечают многострочный комментарий в стиле C. Всё, что находится между этими символами, игнорируется.
Поскольку всё, что находится между этими символами, игнорируется, вы иногда можете увидеть, как программисты «украшают» свои многострочные комментарии:
Комментарии в многострочном стиле не могут быть вложенными. Следовательно, результаты следующего кода могут быть неожиданными:
Когда компилятор попытается скомпилировать этот код, он проигнорирует все, от первого /* до первого */ . Поскольку фрагмент « это не внутри комментария */ » не считается частью комментария, компилятор попытается скомпилировать его. Это неизбежно приведет к ошибке компиляции.
Это то место, где использование подсветки синтаксиса может быть действительно полезным, поскольку различная окраска текста комментария должна прояснить, что считается частью комментария, а что нет.
Предупреждение
Не используйте многострочные комментарии внутри других многострочных комментариев. Обертывание однострочных комментариев внутри многострочных комментариев допускается.
Правильное использование комментариев
Обычно комментарии используются для трех вещей. Во-первых, для заданной библиотеки, программы или функции комментарии лучше всего использовать для описания того, что делает библиотека, программа или функция. Обычно они размещаются в верхней части файла или библиотеки или непосредственно перед функцией. Например:
Все эти комментарии дают читателю хорошее представление о том, что пытается выполнить библиотека, программа или функция, не обращая внимания на реальный код. Пользователь (возможно, кто-то другой или вы, если вы пытаетесь повторно использовать код, который вы написали ранее) может сразу определить, соответствует ли код тому, что он или она пытается выполнить. Это особенно важно при работе в команде, где не все знакомы со всем кодом.
Во-вторых, внутри библиотеки, программы или функции, описанной выше, можно использовать комментарии, чтобы описать, как код будет достигать своей цели.
Эти комментарии дают пользователю представление о том, как код будет достигать своей цели, без необходимости понимать, что делает каждая отдельная его строка.
В-третьих, на уровне инструкций следует использовать комментарии, чтобы описать, почему код что-то делает. Комментарий плохой инструкции объясняет, что делает код. Если вы когда-нибудь напишете настолько сложный код, который требует комментария, чтобы объяснить, что делает инструкция, вам, вероятно, лучше переписать свою инструкцию, а не комментировать ее.
Вот несколько примеров плохих комментариев к строке и хороших комментариев к инструкции.
Причина: мы уже видим, что прицел (sight) устанавливается на 0, посмотрев на инструкцию.
Причина: теперь мы знаем, почему прицел игрока установлен на 0.
Причина: мы видим, что это расчет стоимости, но почему количество умножается на 2?
Причина: Теперь мы знаем, почему эта формула имеет смысл.
Программистам часто приходится выбирать между решением задачи одним или другим способом. Комментарии – отличный способ напомнить себе (или рассказать кому-то другому), почему вы приняли одно решение вместо другого.
Наконец, комментарии должны быть написаны таким образом, чтобы иметь смысл для тех, кто не знает, что делает код. Часто программист говорит: «Совершенно очевидно, что он делает! Я ни за что не забуду об этом,». Угадайте, что? Это не очевидно, и вы удивитесь, как быстро вы забудете. 🙂 Вы (или кто-то другой) поблагодарите вас позже за то, что вы написали, что, как и почему делается в вашем коде на человеческом языке. Читать отдельные строки кода легко. Понимание того, для чего они предназначены, – нет.
Лучшая практика
Обильно комментируйте свой код и пишите свои комментарии, как если бы разговаривали с кем-то, кто не знает, что делает код. Не думайте, что вы вспомните, почему вы сделали конкретный выбор.
Примечание автора
На протяжении всей остальной части этой серии руководств мы будем использовать комментарии внутри фрагментов кода, чтобы привлечь ваше внимание к конкретным вещам или помочь проиллюстрировать, как всё работает (обеспечивая при этом компиляцию программ). Проницательные читатели заметят, что по вышеуказанным стандартам большинство этих комментариев ужасны. 🙂 Читая остальные руководства, имейте в виду, что комментарии служат намеренно образовательной цели, а не пытаются продемонстрировать, как выглядят хорошие комментарии.
Закомментирование кода
Преобразование одной или нескольких строк кода в комментарий называется закомментированием кода. Это предоставляет удобный способ (временно) исключить фрагменты вашего кода из включения в скомпилированную программу.
Чтобы закомментировать одну строку кода и временно превратить эту строку кода в комментарий, просто используйте однострочный комментарий // :
Чтобы закомментировать блок кода и временно превратить этот блок кода в комментарий, используйте // в нескольких строках кода или многострочный комментарий /* */ .
Есть несколько причин, по которым вы можете захотеть это сделать:
- Вы работаете над новым фрагментом кода, который еще не компилируется, и вам нужно запустить программу. Компилятор не позволит вам скомпилировать код, если есть ошибки компиляции. Комментирование кода, который не компилируется, позволит программе скомпилироватьсь, чтобы вы могли ее запустить. Когда вы будете готовы, вы сможете раскомментировать код и продолжить работу над ним.
- Вы написали новый код, который компилируется, но работает некорректно, и у вас нет времени исправить его. Комментирование неработающего кода гарантирует, что он не будет выполняться и не вызовет проблемы, пока вы не исправите его.
- Поиск источника ошибки. Если программа не дает желаемых результатов (или дает сбой), иногда может быть полезно отключить части вашего кода, чтобы посмотреть, можете ли вы определить причину, по которой она работает некорректно. Если вы закомментировали одну или несколько строк кода, и ваша программа начинает работать должным образом (или перестает давать сбой), скорее всего, то, что вы в последний раз закомментировали, было частью проблемы. Затем вы можете выяснить, почему эти строки кода вызывают проблему.
- Вы хотите заменить один фрагмент кода другим фрагментом кода. Вместо того чтобы просто удалять исходный код, вы можете закомментировать его и оставить для справки, пока не убедитесь, что новый код работает правильно. Убедившись, что ваш новый код работает, вы можете удалить старый закомментированный код. Если вам не удается заставить новый код работать, вы всегда можете удалить новый код и раскомментировать старый код, чтобы вернуться к тому, что было раньше.
Закомментирование кода – обычное дело при разработке, поэтому многие IDE поддерживают комментирование выделенного участка кода. Доступ к этой функции зависит от IDE.
Для пользователей Visual Studio
Вы можете закомментировать или раскомментировать выделенный фрагмент с помощью меню Правка (Edit) → Дополнительно (Advanced) → Закомментировать выделенный фрагмент (Comment Selection) или Раскомментировать выделенный фрагмент (Uncomment Selection).
Для пользователей Code::Blocks
Вы можете закомментировать или раскомментировать выделенный фрагмент с помощью меню Edit (Правка) → Comment (Комментарий) или Uncomment (Раскомментировать) или Toggle comment (Переключить комментарий) или любой другой инструмент для комментирования.
Совет
Если для своих обычных комментариев вы всегда используете однострочные комментарии, вы всегда можете использовать многострочные комментарии, чтобы без конфликтов комментировать свой код. Если вы используете многострочные комментарии для документирования кода, то закомментирование кода может стать более сложной задачей.
Если вам нужно закомментировать блок кода, содержащий многострочные комментарии, вы также можете рассмотреть возможность использования директивы препроцессора #if 0 , которую мы обсуждаем в уроке «2.9 – Знакомство с препроцессором».
Урок №9. Комментарии
Комментарий — это строка (или несколько строк) текста, которая вставляется в исходный код для объяснения того, что делает код. В языке C++ есть 2 типа комментариев: однострочные и многострочные.
Однострочные комментарии
Однострочные комментарии — это комментарии, которые пишутся после символов // . Они пишутся в отдельных строках и всё, что находится после этих символов комментирования, — игнорируется компилятором, например:
Как правило, однострочные комментарии используются для объяснения одной строчки кода:
Размещая комментарии справа от кода, мы затрудняем себе как чтение кода, так и чтение комментариев. Следовательно, однострочные комментарии лучше размещать над строками кода:
Многострочные комментарии
Многострочные комментарии — это комментарии, которые пишутся между символами /* */ . Всё, что находится между звёздочками, — игнорируется компилятором:
Так как всё, что находится между звёздочками, — игнорируется, то иногда вы можете наблюдать следующее:
Многострочные комментарии не могут быть вложенными (т.е. одни комментарии внутри других):
Правило: Никогда не используйте вложенные комментарии.
Как правильно писать комментарии?
Во-первых, на уровне библиотек/программ/функций комментарии отвечают на вопрос «ЧТО?»: «Что делают эти библиотеки/программы/функции?». Например:
Все эти комментарии позволяют понять, что делает программа, без необходимости смотреть на исходный код. Это особенно важно специалистам, работающим в команде, где не каждый специалист будет знаком со всем имеющимся кодом.
Во-вторых, внутри библиотек/программ/функций комментарии отвечают на вопрос «КАК?»: «Как код выполняет задание?». Например:
Эти комментарии позволяют читателю понять, каким образом код выполняет поставленное ему задание.
В-третьих, на уровне стейтментов (однострочного кода) комментарии отвечают на вопрос «ПОЧЕМУ?»: «Почему код выполняет задание именно так, а не иначе?». Плохой комментарий на уровне стейтментов объясняет, что делает код. Если вы когда-нибудь писали код, который был настолько сложным, что нужен был комментарий, который бы объяснял, что он делает, то вам нужно было бы не писать комментарий, а переписывать этот код.
Примеры плохих и хороших однострочных комментариев:
(По коду это и так понятно)
(Теперь мы знаем, ПОЧЕМУ зрение у игрока равно нулю)
(Да, мы видим, что здесь подсчет стоимости, но почему элементы делятся на 2?)
Программистам часто приходится принимать трудные решения по поводу того, каким способом решить проблему. А комментарии и существуют для того, чтобы напомнить себе (или объяснить другим) причину, почему вы написали код именно так, а не иначе.
И, наконец, комментарии нужно писать так, чтобы человек, который не имеет ни малейшего представления о том, что делает ваш код — смог в нем разобраться. Очень часто случаются ситуации, когда программист говорит: «Это же совершенно очевидно, что делает код! Я это точно не забуду!». Угадайте, что случится через несколько недель или даже дней? Это не совершенно очевидно, и вы удивитесь, как скоро вы забудете то, что делает ваш код. Вы (или кто-то другой) будете очень благодарны себе за то, что оставите комментарии, объясняя на человеческом языке что, как и почему делает ваш код. Читать отдельные строки кода — легко, понимать их логику и смысл — сложно.
Подытожим:
На уровне библиотек/программ/функций оставляйте комментарии, отвечая на вопрос «ЧТО?».
Внутри библиотек/программ/функций оставляйте комментарии, отвечая на вопрос «КАК?».
На уровне стейтментов оставляйте комментарии, отвечая на вопрос «ПОЧЕМУ?».
Закомментировать код
Закомментировать код — это конвертировать одну или несколько строк кода в комментарии. Таким образом, вы можете (временно) исключить часть кода из компиляции.
Чтобы закомментировать одну строку кода, используйте однострочные символы комментирования // .
Чтобы закомментировать блок кода, используйте однострочные символы комментирования // на каждой строке или символы многострочного комментария /* */ .
Закомментировано символами однострочного комментария:
Закомментировано символами многострочного комментария:
Есть несколько причин, почему следует использовать «закомментирование»:
Причина №1: Вы работаете над новой частью кода, которая пока что не рабочая, но вам нужно запустить программу. Компилятор не позволит выполнить программу, если в ней будут ошибки. Временное отделение нерабочего кода от рабочего комментированием позволит вам запустить программу. Когда код будет рабочий, то вы сможете его легко раскомментировать и продолжить работу.
Причина №2: Вы написали код, который компилируется, но работает не так, как нужно и сейчас у вас нет времени с этим возиться. Закомментируйте код, а затем, когда будет время, исправьте ошибки.
Причина №3: Поиск корня ошибки. Если вас не устраивают результаты работы программы (или вообще происходит сбой), полезно будет поочерёдно «отключать» части вашего кода, чтобы понять какие из них рабочие, а какие — создают проблемы. Если вы закомментируете одну или несколько строчек кода и программа начнет корректно работать (или пропадут сбои), шансы того, что последнее, что вы закомментировали, является ошибкой — очень велики. После этого вы сможете разобраться с тем, почему же этот код не работает так, как нужно.
Причина №4: Тестирование нового кода. Вместо удаления старого кода, вы можете его закомментировать и оставить для справки, пока не будете уверены в том, что ваш новый код работает так, как нужно. Как только вы будете уверены в новом коде, то сможете без проблем удалить старые фрагменты кода. Если же новый код у вас будет работать не так, как нужно, то вы сможете его удалить и откатиться к старому коду.
Примечание: Во всех следующих уроках я буду использовать комментарии в иллюстративных целях. Внимательные читатели смогут заметить, что по вышеуказанным стандартам большинство из этих комментариев будут плохими. Но помните, что использовать я их буду в образовательных целях, а не для демонстрации хороших примеров.
How to comment/uncomment in HTML code
Often while coding view templates in html, my habit of adding some helpful comments causes lots of time-consuming effort while testing.
Consider this code.
Now, if I have to hide out some portion of the view template, in case of php I would just select the desired code and put single-line comments (using a shortcut key most of the times).
However, in html code, where only the block comments work, I end-up removing all the closing comment tags (—>) till the position I want the commenting to occur — something like this.
Then when I’m done testing I have to go through the agony of putting back those closing tags.
Is there a better and time saving way of block commenting in HTML?
11 Answers 11
Yes, to comment structural metadata out,
Using <script>/* . */</script> in .html
Comment out large sections of HTML (Comment Out Block)
my personal way in a .html file is opening: <script>/* and close it with */</script>
<script>/* hiding code go here */</script>
Is a workaround to the problem since is not HTML.
Considering your code in .html.
And in a case is HTML inside PHP file using comment tag <?/* or <?php /* and close it with */?> . Remember that the file must be .php extension and don’t work in .html.
<?/* hiding code go here */?>
Considering your code in .php.
Is worth nothing that is not HTML but a common developer practice is to comment out parts of metadata so that it will not be rendered and/or executed in the browser. In HTML, commenting out multiple lines can be time-consuming. It is useful to exclude pieces of template structural metadata containing comments, CSS or code and systematically commenting out to find the source of an error. It is considered a bad practice to comment blocks out and it is recommended to use a version control system. The attribute "type" is required in HTML4 and optional in HTML5.
Подборка самых полезных горячих клавиш для различных IDE и редакторов кода
Хорошему программисту нужны хорошие инструменты для работы. Однако самих инструментов мало — нужно ещё владеть ими на должном уровне. Комбинация клавиш Ctrl+C Ctrl+V — незаменимый спутник каждого разработчика, однако в средах разработки есть гораздо больше полезных горячих клавиш, существенно повышающих продуктивность. Мы собрали для вас подборку полезных горячих клавиш для некоторых популярных IDE, чтобы вы могли похвастаться перед коллегами своими мега-скиллами разработки.
IntelliJ IDEA
IntelliJ IDEA — известная IDE от JetBrains для JVM-языков вроде Java, Scala и Kotlin. Укомплектована уникальными инструментами и позволяет без проблем ориентироваться в программе. Есть и другие IDE от тех же разработчиков, например, PyCharm для Python, WebStorm для JavaScript и не только. Они во многом схожи между собой, поэтому большинство из нижеуказанных горячих клавиш должно работать и в других IDE от JetBrains.

- Ctrl + Space — стандартное автодополнение кода;
- Ctrl + Shift + Space — умное автодополнение кода;
- Двойной Shift — искать везде;
- Alt + Enter — показать возможные варианты исправления;
- Alt + Ins — генерация кода (геттеры, сеттеры, конструктор и т.д.);
- Ctrl + P — информация о параметре (применяется на аргументе метода при вызове);
- Ctrl + W — расширить область выделения;
- Ctrl + Shift + W — уменьшить область выделения;
- Ctrl + E — список недавних файлов;
- Shift + F6 — переименовать (переменную, функцию и т.д.);
- Ctrl + R — сделать замену;
- Ctrl + Q — быстрый просмотр документации;
- Ctrl + / — закомментировать/раскомментировать строку;
- Ctrl + Shift + / — закомментировать/раскомментировать блок кода;
- Ctrl + Alt + I — автоматически добавить нужные отступы для строки/строк;
- Ctrl + Shift + A — найти действие;
- Shift + Alt + ↑ — переместить выбранные строки вверх;
- Shift + Alt + ↓ — переместить выбранные строки вниз;
- Ctrl + Shift + F7 — показать все упоминания в файле;
- Ctrl + Alt + L — реформатировать код.
Eclipse
Если вы близки с open-source сообществом, то вы наверняка слышали об Eclipse. Будучи доступным для Linux, Windows и OS X, Eclipse де-факто является open-source IDE для разработки на Java. Существует множество расширений и аддонов, которые делают Eclipse полезным для разного рода задач и разработки на отличных от Java языках программирования вроде Python.

- Ctrl + 1 — быстрое исправление;
- Ctrl + Alt + R — переименовать;
- Ctrl + / — закомментировать/раскомментировать строку;
- Ctrl + Shift + / — закомментировать/раскомментировать блок кода;
- Alt + ↑ — переместить выбранные строки вверх;
- Alt + ↓ — переместить выбранные строки вниз;
- Ctrl + I — исправить отступы;
- Ctrl + Alt + U — показать все упоминания в файле;
- Ctrl + Q — перейти к последнему месту редактирования;
- Shift + Ctrl + X — привести текст к верхнему регистру;
- Shift + Ctrl + Y — привести текст к нижнему регистру;
- Ctrl + Shift + F — реформатировать код;
- Ctrl + Shift + O — автоматически вставить нужные импорты.
Visual Studio 2017
Visual Studio — полнофункциональная IDE от Microsoft, которая во многом сопоставима с Eclipse. Доступная на Windows и Mac OS, Visual Studio представлена как в бесплатном (Community), так и в платном (Professional и Enterprise) вариантах. Visual Studio позволяет разрабатывать приложения для разных платформ и предоставляет свой собственный набор расширений.

- F12 — перейти к определению(класса,метода и т.д.);
- Ctrl + Shift + L — поставить закладку;
- Ctrl + K Ctrl + W — открыть окно закладок;
- Ctrl + Shift + U — привести текст к верхнему регистру;
- Ctrl + U — привести текст к нижнему регистру;
- Ctrl + Shift + V или Ctrl + Shift + Ins — вставить один из 10 последних фрагментов текста, скопированных в буфер обмена;
- Ctrl + K Ctrl + C — закомментировать блок кода;
- Ctrl + K Ctrl + U — раскомментировать блок кода;
- Ctrl + K Ctrl + D — отформатировать весь документ;
- Ctrl + K Ctrl + F — отформатировать выбранный текст;
- Ctrl + K Ctrl + S — обернуть в конструкцию (if-else, цикл for и т.д.);
- Ctrl + ] — когда курсор установлен на скобку, регион, многострочный комментарий или строку, эта комбинация позволит увидеть начало и конец этого блока;
- Ctrl + M Ctrl + O — свернуть все функции;
Доступный на всех платформах Atom называют «хакабельным текстовым редактором 21 века». Atom написан с использованием Electron — фреймворка для создания кроссплатформенных приложений для десктопа средствами JavaScript, HTML и CSS — и имеет множество расширений.

- Ctrl + Shift + L — выбрать язык файла;
- Ctrl + Shift + D — копирует строку, на которой находится курсор, под неё же;
- Ctrl + Shift + K — удалить строку;
- Ctrl + ↑ — переместить выбранные строки вверх;
- Ctrl + ↓ — переместить выбранные строки вниз;
- Ctrl + R — открывает список со всеми символами (функциями) в текущем файле для быстрого перехода;
- Alt + F3 — выбрать все одинаковые слова;
- Ctrl + ЛКМ — множественные курсоры;
- Ctrl + J — соединить строки;
- Ctrl + [ — убрать отступы для выделенных строк;
- Ctrl +] — добавить отступы для выделенных строк.
Visual Studio Code
Visual Studio Code (не путать с Visual Studio) — полнофункциональный редактор кода, доступный на Windows, Linux и Mac OS X. VS Code является расширяемым open-source редактором, который можно настроить под любую задачу. Как и Atom, VS Code построен на Electron, поэтому у него есть те же преимущества и недостатки.

- F2 — переименовать символ (функцию, переменную и т.д.);
- Ctrl + Shift + O — перейти к символу;
- Ctrl + K Z — перейти в режим Дзен, в котором вас не отвлекают лишние детали;
- Ctrl + / — закомментировать/раскомментировать строку;
- Shift + Alt + A — закомментировать/раскомментировать блок кода;
- Ctrl + Shift + [ — свернуть область;
- Ctrl + Shift + ] — развернуть область;
- Ctrl + H — заменить;
- Shift + F12 — показать все упоминания;
- F12 — открыть определение (функции, класса и т.д.);
- Ctrl + K F12 — открыть определение в другой части экрана;
- Ctrl + K M — изменить язык файла;
- Ctrl + P — быстро открыть файл;
- Ctrl + \ — разделить экран;
- Ctrl + ` — открыть встроенный терминал;
- Ctrl + K Ctrl + S — показать список всех горячих клавиш.
Sublime Text
Sublime Text, написанный инженером из Google с мечтой о лучшем текстовом редакторе, является весьма популярным редактором кода. Доступный на всех платформах, Sublime Text имеет встроенную поддержку редактирования кода на разных языках, а также богатый набор расширений, называемых пакетами, которые расширяют возможности синтаксиса и редактирования.