Форма документирования кода

Возможности 18.04.2019

В стандартной библиотеке существует огромное количество классов и методов, запомнить которые невозможно. Поэтому для нахождения информации о конкретном методе или классе необходимо пользоваться оперативной документацией интерфейса API. Документация интерфейса API является составной частью набора инструментальных средств Java SDK и создана в HTML формате. Для каждой новой версии JDK имеется собственная документация, которую можно скачать по адресу http://java.sun.com в разделе Download. Кроме API в документации также можно найти следующую информацию (рис. 1):
- инструментальные средства и их опции запуска (каталог tools);
- описание различных языковых средств и технологий, которые составляют ядро Java (каталог guide).


Рисунок 1 - Структура каталога с документацией к Java.

Открыть документацию по интерфейсам классам или методам языка можно через файл docs/api/index.html. Окно документации разделено на три фрейма. В маленьком фрейме в правом углу приведены все доступные пакеты. Все пакеты можно увидеть также и в основном окне, щелкнув мышью на ссылке Overwiev в верхней строке основного окна. В правом нижнем фрейме перечислены все классы. Если щелкнуть кнопкой мыши на конкретном имени класса, то будет показана соответствующая документация по этому классу в основном окне.

Например, чтобы получить информацию о методах класса String, прокрутите левое нижнее окно, пока не увидите ссылку String. Щелкните на ней.

В основном окне для класса можно увидеть после его названия дерево наследования (рис. 2). Например, для класса String:

java.lang.Object
|_ java.lang.String


Рисунок 2 - Описание класса String.

Далее, как правило, следует перечисление интерфейсов, которые имплементирует данный класс. После этого следует описание назначения класса. Ниже следуют таблицы с кратким описанием полей, конструкторов и методов класса (рис. 3). Щелкните мышью на имени этого метода, чтобы получить его детальное описание. Например, если вы щелкните мышью на ссылке charAt , то получите полное описание метода charAt .



Рисунок 3 - Сводка методов класса String.

Если напротив метода вы увидите запись Deprecated , то использование данного метода нежелательно в данной версии JDK. Это означает, что данный метод может не во всех случаях отрабатывать корректно, либо создан альтернативный метод, который более эффективен.

Кроме ссылки Overwiev в верхней строки основного окна присутствуют также еще несколько полезных ссылок: Tree, Deprecated, Index, Help. С помощью ссылки Tree можно отобразить полное дерево наследования классов. С помощью ссылки Tree можно увидеть список всех нежелательных методов. С помощью ссылки Index можно легко найти класс, метод или интерфейс, зная только его имя. С помощью ссылки Help можно подробно ознакомиться с организацией и функционированием API.

Ссылки:

  1. Хорстман К.С., Корнелл Г. Библиотека профессионала. Java 2. Том 1. Основы. - М.: Издательский дом Вильямс, 2003. - 848 с.
  2. JavaTM 2 Platform Standard Edition 5.0 API Specification. http://java.sun.com

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

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

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

javadoc - это генератор документации в HTML-формате из комментариев исходного кода Java и определяет стандарт для документирования классов Java. Для создания доклетов и тэглетов, которые позволяют программисту анализировать структуру Java-приложения, javadoc также предоставляет API. В каждом случае комментарий должен находиться перед документируемым элементом.

При написании комментариев к кодам Java используют три типа комментариев:

// однострочный комментарий; /* многострочный комментарий */ /** комментирование документации */

С помощью утилиты javadoc , входящей в состав JDK, комментарий документации можно извлекать и помещать в НТМL файл. Утилита javadoc позволяет вставлять HTML тэги и использовать специальные ярлыки (дескрипторы) документирования. НТМL тэги заголовков не используют, чтобы не нарушать стиль файла, сформированного утилитой.

Дескрипторы javadoc , начинающиеся со знака @, называются автономными и должны помещаться с начала строки комментария (лидирующий символ * игнорируется). Дескрипторы, начинающиеся с фигурной скобки, например {@code} , называются встроенными и могут применяться внутри описания.

Комментарии документации применяют для документирования классов, интерфейсов, полей (переменных), конструкторов и методов. В каждом случае комментарий должен находиться перед документируемым элементом.

javadoc дескрипторы: @author, @version, @since, @see, @param, @return

Дескриптор Применение Описание
@author Класс, интерфейс Автор
@version Класс, интерфейс Версия. Не более одного дескриптора на класс
@since Указывает, с какой версии доступно
@see Класс, интерфейс, поле, метод Ссылка на другое место в документации
@param Метод Входной параметр метода
@return Метод Описание возвращаемого значения
@exception имя_класса описание Метод
@throws имя_класса описание Метод Описание исключения, которое может быть послано из метода
@deprecated Класс, интерфейс, поле, метод Описание устаревших блоков кода
{@link reference} Класс, интерфейс, поле, метод Ссылка
{@value} Статичное поле Описание значения переменной

Форма документирования кода

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

В тело комментариев можно вставлять различные дескрипторы. Каждый дескриптор, начинающийся с символа "@" должен стоять первым в строке. Несколько дескрипторов одного и того же типа необходимо группировать вместе. Встроенные дескрипторы (начинаются с фигурной скобки) можно помещать внутри любого описания.

/** * Класс продукции со свойствами maker и price. * @autor Киса Воробьянинов * @version 2.1 */ class Product { /** Поле производитель */ private String maker; /** Поле цена */ public double price; /** * Конструктор - создание нового объекта * @see Product#Product(String, double) */ Product() { setMaker(""); price=0; } /** * Конструктор - создание нового объекта с определенными значениями * @param maker - производитель * @param price - цена * @see Product#Product() */ Product(String maker,double price){ this.setMaker(maker); this.price=price; } /** * Функция получения значения поля {@link Product#maker} * @return возвращает название производителя */ public String getMaker() { return maker; } /** * Процедура определения производителя {@link Product#maker} * @param maker - производитель */ public void setMaker(String maker) { this.maker = maker; } }

Для документирования кода можно использовать HTML теги. При использовании ссылочных дескрипторов @see и @link нужно сначала указать имя класса и после символа "#" его метод или поле.

Среда разработки IDE, как правило, помогает программисту "подсветкой" встроенной документации. На следующих рисунках приведены скриншоты всплывающих окон IDE Eclipse.


Утилита javadoc в качестве входных данных принимает файл с исходным кодом программы, для которого генерируется НТМL файл. Документация для каждого класса содержится в отдельном НТМL файле. Кроме этого, создается дерево индексов и иерархии. Могут быть сгенерированы и другие НТМL файлы.

Сценарии ant и javadoc

Для создания документации можно использовать ant .

Пример сценария (задания) ant для формирования документации к приложению MyProject:

Подробная информация формирования документации представлена на странице

There are good reasons for making your own local javadocs, and it"s not particularly difficult!

First you need the source. At the time of writing the Java 8 JDK comes with a zip file called src.zip . Sometimes, for unexplained reasons, Oracle don"t always include the source. So for some older versions (and who knows about the future) you have to get hold of the Java source in another way. It"s worth also being aware that, in the past, Oracle have sometimes included the source with the Linux version of the JDK, but not with the Windows one.

I just unzipped this file... the top directories are "com", "java", "javax", "launcher" and "org". Directory launcher contains no files to document.

You can generate the javadocs very very simply from any or all of these by CD"ing at the command prompt/terminal to the directory ...\src . Then go

javadoc -d docs -Xmaxwarns 10 -Xmaxerrs 10 -Xdoclint:none -sourcepath . -subpackages java:javax:org:com

NB note that there is a "." after -sourcepath

Simple as that. Generating your own javadocs also has 2 huge advantages

  1. you know they are precisely the right javadocs for the JDK (or any exernal jar file) you are using on your system
  2. once you get into the habit, reconstituting your Javadocs is not a tiresome challenge (i.e. where to go looking for them). For example I just unzipped a couple of source jars whose packages are closely coupled, so their sources were in effect "merged" & then made a single Javadoc from them...

NB Swing is semi-officially DEAD. We should all be switching to JavaFX, which is helpfully bundled with Java 8 JDK, but in its own source file, javafx-src.zip .

Unzipped, this reveals 3 "root" packages: com , javafx and netscape (wha"?). These should be manually moved over the to appropriate places under the unzipped src directory (including the JavaFX com.sun packages under the Java com.sun strcture). Compiling all these Javadoc files took my machine a non-negligible time. I"d expect to see all the JavaFX source classes in with all the other source classes some time soon.

BTW, the same thinking applies to documenting any and all Java jars (with source) which you use. However, all versions of most jars will be found with their documentation available for download at Maven Central http://search.maven.org ...

PS afterthought:
using Eclipse and the "Gradle STS" plugin: the "New Gradle STS Project" wizard will create a gradle.build file containing the line

include plugin: "eclipse"

This magically downloads the source jar with the executable jar (under GRADLE_HOME) when you go

Giving you an extra degree of certainty that you have got the right src and therefore the right javadoc for the dependency in question.



Рекомендуем почитать

Наверх