Перейти к основному содержимому

Лабораторная работа №8. Создание автоматической документации кода на примере Doxygen и Docfx для C#.


0. Теоретические материалы

Создание .NET библиотеки от А до Я. Документация

Автодокументация Doxygen и её развертывание на GitHub Pages

1. Введение

  • Цель лабораторной работы: Научиться создавать автоматическую документацию для кода на языке C# с использованием инструментов Doxygen и Docfx.
  • Результаты: По окончании работы студент должен уметь:
    • Подготавливать код к автоматической генерации документации.
    • Настраивать Doxygen и Docfx для генерации документации.
    • Понимать основные принципы работы этих инструментов.
    • Сравнивать возможности и отличия Doxygen и Docfx.

2. Подготовка к работе

  • Необходимые инструменты:
    • Среда разработки (Visual Studio или другая).
    • Установленные Doxygen и Graphviz (если требуется генерация графов).
    • Установленный .NET SDK.
    • Установленный Docfx.
  • Предварительная подготовка:
    • Создать простой проект на C# (например, консольное приложение), который будет использоваться для генерации документации.
    • В проекте должны быть классы, методы, свойства и комментарии XML для примера.

3. Шаг 1: Подготовка кода к документации

  1. Добавление комментариев XML в код:

    • Откройте созданный проект в Visual Studio.
    • Добавьте XML-комментарии к каждому классу, методу, свойству и полю.
    • Пример комментариев:
      /// <summary>
      /// Класс, представляющий основные операции калькулятора.
      /// </summary>
      public class Calculator
      {
      /// <summary>
      /// Сложение двух чисел.
      /// </summary>
      /// <param name="a">Первое число.</param>
      /// <param name="b">Второе число.</param>
      /// <returns>Сумма двух чисел.</returns>
      public int Add(int a, int b)
      {
      return a + b;
      }
      }
  2. Проверка правильности комментариев:

    • Убедитесь, что все классы и методы снабжены XML-комментариями.
    • Примечание: комментарии должны быть написаны с использованием тегов <summary>, <param>, <returns> и других, если требуется.

4. Шаг 2: Генерация документации с использованием Doxygen

  1. Установка Doxygen:

    • Убедитесь, что Doxygen установлен. Если нет, скачайте его с официального сайта Doxygen.
    • Если требуется генерация графов, установите Graphviz.
  2. Создание конфигурационного файла:

    • В командной строке перейдите в каталог проекта.
    • Выполните команду doxygen -g для генерации базового конфигурационного файла Doxyfile.
    • Откройте Doxyfile для редактирования.
  3. Настройка Doxyfile:

    • Укажите входные файлы:
      INPUT = ./src
    • Включите поддержку C#:
      FILE_PATTERNS = *.cs
    • Включите генерацию документации в формате HTML:
      GENERATE_HTML = YES
    • Опционально: настройте другие параметры, такие как генерация диаграмм классов и зависимостей.
  4. Запуск Doxygen:

    • В командной строке выполните команду doxygen Doxyfile.
    • Проверьте созданные HTML-файлы в папке html.
  5. Анализ результатов:

    • Откройте сгенерированную документацию в браузере и убедитесь, что она соответствует ожиданиям.
    • Обратите внимание на сгенерированные диаграммы классов, если они были включены.

5. Шаг 3: Генерация документации с использованием Docfx

  1. Установка Docfx:

    • Убедитесь, что .NET SDK установлен.
    • Установите Docfx, используя команду:
      dotnet tool install -g docfx
  2. Создание документационного проекта:

    • Перейдите в каталог проекта.
    • Инициализируйте проект Docfx:
      docfx init -q
    • В каталоге проекта появится новая структура файлов и папок, включая _site, docfx.json и api.
  3. Настройка docfx.json:

    • Откройте файл docfx.json для редактирования.
    • Укажите путь к C# проекту в секции metadata:
      "metadata": [
      {
      "src": [
      {
      "files": [
      "**/*.csproj"
      ],
      "cwd": "./src"
      }
      ],
      "dest": "api"
      }
      ]
    • Убедитесь, что включена генерация документации API.
  4. Запуск генерации документации:

    • Выполните команду:
      docfx build
    • Проверьте созданные HTML-файлы в папке _site.
  5. Анализ результатов:

    • Откройте сгенерированную документацию в браузере.
    • Проверьте, как Docfx отобразил XML-комментарии и структуру проекта.

6. Шаг 4: Сравнение Doxygen и Docfx

  1. Сравнение функционала:

    • Обсудите, какие возможности есть у Doxygen, которые отсутствуют в Docfx, и наоборот.
    • Проверьте, какой инструмент лучше справляется с различными задачами (например, поддержка диаграмм классов).
  2. Преимущества и недостатки:

    • Составьте таблицу с преимуществами и недостатками каждого инструмента.
  3. Обсуждение сценариев использования:

    • Обсудите, в каких случаях предпочтительнее использовать Doxygen, а в каких - Docfx.
    • Подумайте о возможностях интеграции с другими инструментами и CI/CD.

7. Индивидуальное задание


Задание 1: Работа с Doxygen

Задача: Для каждого из вариантов требуется настроить Doxygen для специфической задачи по генерации документации в проекте на C#. Проект должен включать классы, методы и различные типы данных (например, перечисления, структуры). Также необходимо использовать различные функции Doxygen для улучшения визуализации и понимания структуры кода.

Варианты:

  1. Вариант 1: Настроить Doxygen для генерации документации с поддержкой UML-диаграмм классов и зависимостей между ними. Включить диаграммы наследования и связи между классами.

  2. Вариант 2: Настроить Doxygen для генерации документации, которая включает автогенерируемые страницы с описанием всех перечислений (enums) и их возможных значений. Дополнительно, добавить кастомные пояснения к значениям перечислений.

  3. Вариант 3: Использовать Doxygen для создания документации, которая помимо HTML содержит также PDF-версию с оглавлением и гиперссылками. Настроить таблицы содержимого и индексы для быстрого поиска информации.

  4. Вариант 4: Настроить Doxygen на генерацию документации с расширенными комментариями, включая примеры использования методов. Добавить в документацию секции с FAQ по работе с методами и классами.

  5. Вариант 5: Настроить Doxygen для генерации документации, включающей автоматически сгенерированные графы вызовов функций (call graphs) и графы вызовов из функций (caller graphs). Описать в комментариях сложные цепочки вызовов.


Задание 2: Работа с Docfx

Задача: Для каждого из вариантов требуется настроить Docfx для создания полной документации API проекта на C#. Особое внимание уделить настройке метаданных, содержимому документации и интеграции с другими средствами.

Варианты:

  1. Вариант 1: Настроить Docfx для генерации документации, которая включает описание всех публичных API, включая методы, свойства и события. Оформить документ таким образом, чтобы каждый класс имел отдельную страницу с перекрестными ссылками.

  2. Вариант 2: Настроить Docfx для генерации документации с возможностью поиска по документации. Настроить интеграцию с GitHub, чтобы каждая строка кода в документации ссылалась на соответствующую строку в репозитории.

  3. Вариант 3: Настроить Docfx на создание документации с использованием кастомной темы оформления. Добавить секции с примерами кода и пошаговыми инструкциями для использования API.

  4. Вариант 4: Настроить Docfx на генерацию документации, включающей не только API, но и дополнительный контент в виде технических статей и руководств. Настроить иерархию содержания и включить подробные ссылки на эти руководства в документацию API.

  5. Вариант 5: Настроить Docfx для генерации многоязычной документации, поддерживающей как минимум два языка (например, английский и русский). Включить в документацию возможность переключения языка и настройку метаданных для каждой языковой версии.


8. Заключение

  • Выводы:

    • Сформулируйте основные выводы по лабораторной работе.
    • Опишите, как данные инструменты могут помочь в реальных проектах.
  • Рекомендации:

    • Укажите на возможные улучшения кода для лучшей генерации документации.
    • Предложите рассмотреть альтернативные инструменты для автоматической генерации документации.