Комментарии: три способа документировать Java код
Предположим, вы работаете в ИТ-отделе крупной компании. Ваш босс инструктирует вас, что надо написать программу, состоящую из нескольких тысяч строк исходного кода. Через несколько недель вы закончите программу и запустите проект. Через несколько месяцев пользователи начинают замечать, что программа иногда падает. Они жалуются вашему боссу, а он, в свою очередь, приказывает вам: необходимо исправить это. Поискав в вашем архиве проектов, вы находите папку с текстовыми файлами - исходный код программы. К сожалению, вы обнаруживаете, что исходный код не имеет смысла – он просто-напросто вам непонятен. За прошедшее время вы работали в других проектах, и вы не можете вспомнить, почему вы написали код именно так. Расшифровка кода может занять несколько часов или даже дней, но боссу нужен результат еще вчера. Неизбежен немалый стресс. Как же не допустить этого?
Данного стресса можно избежать, если документировать исходный код значимыми описаниями. И хотя это часто упускается из виду, но документирование исходного кода при написании логики программы - это одна из наиболее важных задач разработчика. Как можно увидеть из моего примера, учитывая некоторое время, которое прошло со времени написания кода, даже прекрасный программист может не понять обоснование некоторых решений – почему он сделал именно так, а не иначе.
В Java вы можете использовать функции комментариев: вставлять документацию в исходный код. Комментарий с разделителями – это текст, который имеет смысл для человека, но не для компилятора. При компиляции исходного кода компилятор Java игнорирует все комментарии; он не генерирует байт-код для них. Java поддерживает однострочные, многострочные, и комментарии Javadoc. Давайте посмотрим на примеры для каждого из них.
Однострочные комментарии
Однострочный комментарий охватывает одну строку. Он начинается с // и продолжается до конца текущей строки. Компилятор игнорирует все символы из // до конца этой линии. Следующий пример представляет однострочный комментарий:
Однострочный комментарий полезен для определения короткого значимого описания данной строки кода.
Многострочные комментарии
Многострочный комментарий охватывает несколько строк. Он начинается с /* и заканчивается */ . Все символы из /* через */ игнорируются компилятором. Следующий пример представляет многострочный комментарий:
Как вы можете видеть, многострочный комментарий полезен для документирования нескольких строк кода. Кроме этого, можно использовать несколько однострочных комментариев для другой цели, как я сделал ниже:
Еще одно применение многострочных комментариев - комментирование блоков кода, которые не требуются в настоящий момент в программе, но, возможно понадобятся в будущем. Они остаются закомментированными, чтобы потом раскомментировать и использовать в любой момент. Следующий исходный код демонстрирует такой сценарий:
Нельзя делать многострочные комментарии в одну строку, потому что компилятор сообщит об ошибке. Например, компилятор выдает сообщение об ошибке, когда он сталкивается с
Комментарии Javadoc
Комментарий Javadoc - это специальный многострочный комментарий. Он начинается с /** и заканчивается */ . Все символы из /** через */ игнорируются компилятором. Следующий пример представляет комментарий Javadoc:
Этот пример в комментарий Javadoc описывает метод main(). Находящееся между /** и */ является описанием метода и @param тег Javadoc ( @ -prefixed инструкции к javadoc инструмента).
Рассмотрим часто используемые теги Javadoc:
- @author идентифицирует автора исходного кода.
- @deprecated идентифицирует исходный код субъекта (например, метод), который больше не будет использоваться.
- @param определяет один из параметров метода.
- @see - ссылка.
- @since идентифицирует версию программного обеспечения.
- @return определяет тип значения, возвращаемого методом.
- @throws – выбрасываемые методом исключения.
Хотя комментарии Javadoc игнорируются компилятором, но обрабатываются javadoc , который собирает их в HTML на основе документации. Например, следующая команда создает документацию для гипотетического Checkers класса:
Генерируемая документация включает в себя индексный файл ( index.html ), который представляет собой стартовую страницу. Например, на рисунке ниже вы можете видеть стартовую страницу из документации Java SE 8 update 45 библиотеки API, сгенерированную Javadoc.
Данная статья представляет собой перевод с английского. Автор исходного текста Джефф Фризен, переводчик Юрий Пахолков. Если вам необходим качественный перевод с английского языка (включая специфические тексты по ИТ-тематике), то вы можете обратиться к нам: пишите на электронную почту up777up@yandex.ru с темой "перевод". Мы с удовольствием и за очень небольшую сумму в отечественной или иностранной валюте вам поможем.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.