JavaRush /Курсы /Модуль 2: Fullstack /Документирование кода

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

Модуль 2: Fullstack
10 уровень , 3 лекция
Открыта

4.1 Знакомство с JSDoc

Документирование кода является ценной практикой, которая улучшает его читаемость, облегчает сопровождение и помогает новым участникам команды быстрее понять проект. В мире TypeScript существуют различные подходы к документированию, и одним из самых популярных является использование JSDoc.

Что же такое JSDoc?

JSDoc — это аннотационный формат, используемый для добавления комментариев к исходному коду JavaScript (и TypeScript), чтобы документировать API, функции, классы и другие элементы. JSDoc предоставляет различные теги, которые позволяют описывать параметры, возвращаемые значения, типы, исключения и многое другое.

Почему важно документировать код?

  1. Улучшение читаемости: хорошо документированный код легче понимать и сопровождать.
  2. Упрощение поддержки: документация помогает разработчикам быстрее находить и исправлять ошибки.
  3. Повышение производительности команды: новые члены команды могут быстрее вникнуть в проект, используя документацию.
  4. Снижение зависимости от авторов кода: документация уменьшает необходимость обращаться к авторам кода за разъяснениями.

Основные теги JSDoc

JSDoc предоставляет множество тегов для документирования различных аспектов кода. Вот некоторые из них:

  • @param: описание параметра функции
  • @returns: описание возвращаемого значения функции
  • @type: описание типа переменной или свойства
  • @typedef: определение пользовательского типа
  • @property: описание свойств объекта
  • @example: пример использования функции или метода
  • @deprecated: пометка об устаревании элемента

4.2 Использование JSDoc в TypeScript

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

Пример использования JSDoc с функцией:

TypeScript
    
      /**
       * Вычисляет сумму двух чисел.
       *
       * @param {number} a - Первое число.
       * @param {number} b - Второе число.
       * @returns {number} Сумма двух чисел.
       *
       * @example
      * const result = add(2, 3);
       * console.log(result); // 5
      */
      function add(a: number, b: number): number {
        return a + b;
      }
    
  

Пример использования JSDoc с классом:

TypeScript
    
      /**
       * Класс, представляющий пользователя.
       */
      class User {
        /**
         * Имя пользователя.
         */
        name: string;

        /**
         * Возраст пользователя.
         */
        age: number;

        /**
         * Создает нового пользователя.
         *
         * @param {string} name - Имя пользователя.
         * @param {number} age - Возраст пользователя.
         */
        constructor(name: string, age: number) {
          this.name = name;
          this.age = age;
        }

        /**
         * Получает приветственное сообщение для пользователя.
         *
         * @returns {string} Приветственное сообщение.
         */
        getGreeting(): string {
          return `Hello, my name is ${this.name} and I am ${this.age} years old.`;
        }
      }
    
  

4.3 Генерация документации с помощью JSDoc

JSDoc также предоставляет возможность генерировать HTML-документацию из комментариев в коде. Это полезно для создания удобочитаемой документации, которая может быть размещена на сайте или в wiki проекта.

1. Установка JSDoc

Для генерации документации с помощью JSDoc необходимо установить JSDoc глобально:

Terminal
    
      npm install -g jsdoc
    
  

2. Создание конфигурационного файла JSDoc

Создайте файл jsdoc.json для настройки генерации документации:

JSON
    
      {
        "source": {
          "include": ["src"],
          "exclude": ["node_modules", "dist"],
          "includePattern": ".+\\.ts(doc|x)?$",
          "excludePattern": "(^|\\/|\\\\)_"
        },
        "opts": {
          "destination": "./docs"
        }
      }
    
  

3. Генерация документации

Запустите JSDoc с использованием конфигурационного файла:

Terminal
    
      jsdoc -c jsdoc.json
    
  

Это создаст документацию в директории ./docs, которую можно просматривать в браузере.

4.4 Интеграция с инструментами разработки

1. Visual Studio Code

Visual Studio Code (VSCode) предоставляет отличную поддержку JSDoc и TypeScript, включая автозаполнение комментариев и подсказки типов. Убедитесь, что вы используете расширения, такие как TypeScript Hero, чтобы улучшить поддержку TypeScript и JSDoc.

2. TSDoc

TSDoc — это стандарт для документирования TypeScript кода, который расширяет возможности JSDoc. TSDoc обеспечивает совместимость с TypeScript и улучшает поддержку специфических возможностей языка.

Пример использования TSDoc:

TypeScript
    
      /**
       * Вычисляет разницу двух чисел.
       *
       * @param a - Первое число.
       * @param b - Второе число.
       * @returns Разница двух чисел.
       */
      function subtract(a: number, b: number): number {
        return a - b;
      }
    
  

В примере выше не нужно указывать в комментариях тип переменных, т. к. он известен из самого кода.

Вот как бы выглядел его JSDoc аналог:

TypeScript
    
      /**
       * Вычисляет разницу двух чисел.
       *
       * @param {number} a - Первое число.
       * @param {number} b - Второе число.
       * @returns {number} Разница двух чисел.
      */
      function subtract (a: number, b: number): number {
        return a + b;
      }
    
  

Лучшие практики документирования кода

  1. Документируйте публичные API: всегда документируйте публичные методы и классы, которые будут использоваться другими разработчиками.
  2. Используйте примеры: примеры использования помогают лучше понять, как использовать функции и методы.
  3. Следите за актуальностью документации: обновляйте документацию при изменении кода, чтобы избежать расхождений.
  4. Не перегружайте код комментариями: документируйте только те части кода, которые действительно нуждаются в объяснении.
  5. Используйте автоматизацию: интегрируйте генерацию документации в процесс CI/CD, чтобы всегда иметь актуальную документацию.
3
Задача
Модуль 2: Fullstack, 10 уровень, 3 лекция
Недоступна
Документирование функции с JSDoc
Документирование функции с JSDoc
3
Задача
Модуль 2: Fullstack, 10 уровень, 3 лекция
Недоступна
Документирование класса с JSDoc
Документирование класса с JSDoc
3
Задача
Модуль 2: Fullstack, 10 уровень, 3 лекция
Недоступна
Генерация документации с JSDoc
Генерация документации с JSDoc
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ