Документирование javadoc

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

Как правило, все существующие среды разработки 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}Статичное поле Описание значения переменной

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

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

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

/** 
 * Класс продукции со свойствами <b>maker</b> и <b>price</b>.
 * @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 :

<?xml version="1.0" encoding="UTF-8"?>

<project name="MyProject.doc" default="create-javadoc" basedir=".">

    <target name="create-javadoc" description="documentation" depends="">
        <property name="app.name"    value="MyProject" />
        <property name="app.version" value="1.21" />
        <property name="app.author"  value="AuthorName" />
        <property name="app.year"    value="2015" />
        <property name="dir.package" value="examples.projects.*" />
        <property name="dir.src"     value="./src" />
        <property name="dir.doc"     value="./doc" />

        <echo message="Create MyProject.doc." />
        <mkdir dir="${dir.doc}" />

        <javadoc destdir="${dir.doc}" 
                 use="true"
                 private="true"
                 author="${app.author}" 
                 version="${app.version}" 
                 windowtitle="${app.name} API"
                 doctitle="${app.name}" >
            <fileset dir="${dir.src}" defaultexcludes="yes">
                 <include name="examples/projects/**"/>
            </fileset>
	    </javadoc>
    </target>
</project>

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

Наверх
  Рейтинг@Mail.ru