Генератор документации: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
исправлена опечатка
м Удаление шаблонов, унификация {{нпX}}
Строка 45: Строка 45:
== Популярные генераторы документации ==
== Популярные генераторы документации ==
Примеры для разных языков и сред программирования:
Примеры для разных языков и сред программирования:
* {{translation|:en:Doc-O-Matic|Doc-O-Matic}};
* {{translation|Doc-O-Matic||en|Doc-O-Matic}};
* [[Document! X]] предназначен для программ на языке [[VB6]], языках: VB.NET/C#/Visual C++ .NET ([[.NET Framework]] 1.0, 1.1 и 2.0), [[Component Object Model|COM]]-компонентов, баз данных [[Microsoft Access|Access]], [[Microsoft SQL Server]] и [[Oracle (СУБД)|Oracle]], [[XML Schema]] и других языках описания [[XML]];
* [[Document! X]] предназначен для программ на языке [[VB6]], языках: VB.NET/C#/Visual C++ .NET ([[.NET Framework]] 1.0, 1.1 и 2.0), [[Component Object Model|COM]]-компонентов, баз данных [[Microsoft Access|Access]], [[Microsoft SQL Server]] и [[Oracle (СУБД)|Oracle]], [[XML Schema]] и других языках описания [[XML]];
* [[Doxygen]] — языках: [[C++]], [[Си (язык программирования)|Си]], [[Objective-C]], [[Java]], [[Язык описания интерфейсов|IDL]], [[PHP]], [[C Sharp|C#]], [[Фортран]], [[VHDL]] и, частично, [[D (язык программирования)|D]];
* [[Doxygen]] — языках: [[C++]], [[Си (язык программирования)|Си]], [[Objective-C]], [[Java]], [[Язык описания интерфейсов|IDL]], [[PHP]], [[C Sharp|C#]], [[Фортран]], [[VHDL]] и, частично, [[D (язык программирования)|D]];

Версия от 19:54, 4 декабря 2019

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

Обычно генератор анализирует исходный код программы, выделяя синтаксические конструкции, соответствующие значимым объектам программы (типам, классам и их членам/свойствам/методам, процедурам/функциям и т. п.). В ходе анализа также используется мета-информация об объектах программы, представленная в виде документирующих комментариев. На основе всей собранной информации формируется готовая документация, как правило, в одном из общепринятых форматов — HTML, HTMLHelp, PDF, RTF и других.

Документирующие комментарии

Документирующий комментарий — это особым образом оформленный комментарий к объекту программы, предназначенный для использования каким-либо конкретным генератором документации. От того, какой генератор документации применяется, зависит синтаксис конструкций, используемых в документирующих комментариях.

В документирующих комментариях может содержаться информация об авторе кода, описываться назначение объекта программы, смысл входных и выходных параметров — для функции/процедуры, примеры использования, возможные исключительные ситуации, особенности реализации.

Документирующие комментарии, как правило, оформляются как многострочные комментарии в стиле языка Си. В каждом случае комментарий должен находиться перед документируемым элементом. Первым символом в комментарии (и в начале строк комментария) должен быть *. Блоки разделяются пустыми строками.

Пример документирующего комментария на языке PHP:

/**
* Имя или краткое описание объекта
* 
* Развернутое описание
* 
* @имя_дескриптора значение
* @return тип_данных
*/

Пример документирующего комментария к функции в программе на Java, предназначенного для использования Javadoc:

 /**
  * Проверяет, допустимый ли ход.
  * Например, чтобы задать ход e2-e4, напишите isValidMove(5,2,5,4);
  * @author John Doe
  * @param theFromFile Вертикаль, на которой находится фигура (1=a, 8=h)
  * @param theFromRank Горизонталь, на которой находится фигура (1...8)
  * @param theToFile   Вертикаль клетки, на которую выполняется ход (1=a, 8=h)
  * @param theToRank   Горизонталь клетки, на которую выполняется ход (1...8)
  * @return true, если ход допустим, и false, если недопустим
  */
  boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
  {
      . . .
  }

Популярные генераторы документации

Примеры для разных языков и сред программирования:

Примечания