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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
 
(не показаны 33 промежуточные версии 25 участников)
Строка 1: Строка 1:
'''Генератор документации''' — [[Компьютерная программа|программа]] или [[Пакет (программирование)|пакет программ]], позволяющая получать [[техническая документация|документацию]], предназначенную для [[программист]]ов (документация на [[API]]) и/или для конечных пользователей системы, по особым образом комментированному [[исходный код|исходному коду]] и, в некоторых случаях, по [[исполняемый модуль|исполняемым модулям]] (полученным на выходе [[компилятор]]а).
'''Генератор документации''' — [[Компьютерная программа|программа]] или [[Программный пакет|пакет программ]], позволяющая получать [[техническая документация|документацию]], предназначенную для [[программист]]ов (документация на [[API]]) и/или для конечных пользователей системы, по особым образом комментированному [[исходный код|исходному коду]] и, в некоторых случаях, по [[Исполнимый модуль|исполняемым модулям]] (полученным на выходе [[компилятор]]а).


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


== Документирующие комментарии ==
== Документирующие комментарии ==
{{main|Документирующие комментарии}}


Документирующий комментарий — это особым образом оформленный [[комментарии (программирование)|комментарий]] к объекту программы, предназначенный для использования каким-либо конкретным генератором документации. От того, какой генератор документации применяется, зависит [[синтаксис]] конструкций, используемых в документирующих комментариях.
Документирующий комментарий — это особым образом оформленный [[комментарии (программирование)|комментарий]] к объекту программы, предназначенный для использования каким-либо конкретным генератором документации. От того, какой генератор документации применяется, зависит [[синтаксис]] конструкций, используемых в документирующих комментариях.
Строка 10: Строка 9:
В документирующих комментариях может содержаться информация об авторе кода, описываться назначение объекта программы, смысл входных и выходных параметров — для функции/процедуры, примеры использования, возможные исключительные ситуации, особенности реализации.
В документирующих комментариях может содержаться информация об авторе кода, описываться назначение объекта программы, смысл входных и выходных параметров — для функции/процедуры, примеры использования, возможные исключительные ситуации, особенности реализации.


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


Пример документирующего комментария на языке [[PHP]]:
Пример документирующего комментария на языке [[PHP]]:
Строка 23: Строка 22:
*/</source>
*/</source>


{{Шаблон:PhpDocumentor}}
{{PhpDocumentor}}


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


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

Примеры для разных языков и сред программирования:
Примеры для разных языков и сред программирования:
* [[:en:Doc-O-Matic|Doc-O-Matic]]{{ref-en}}<ref>http://www.doc-o-matic.com/</ref>;
* {{нп1|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]], [[SQL|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]], [[Python]] и, частично, [[D (язык программирования)|D]];
* [[Epydoc]] — языке [[Python]];
* [[Epydoc]] — языке [[Python]];
* [[Javadoc]] — языке [[Java]];
* [[Javadoc]] — языке [[Java]];
* [[JSDoc]] — языке [[JavaScript]];
* [[HappyDoc]]<ref>http://happydoc.sourceforge.net/</ref>;
* [[HappyDoc]]<ref>{{Cite web |url=http://happydoc.sourceforge.net/ |title=HappyDoc Source Documentation<!-- Заголовок добавлен ботом --> |access-date=2006-01-27 |archive-date=2020-11-27 |archive-url=https://web.archive.org/web/20201127012332/http://happydoc.sourceforge.net/ |deadlink=no }}</ref> — языке [[Python]];
* [[PasDoc]]<ref>http://pasdoc.sipsolutions.net/</ref> — языке [[Delphi]]/[[Pascal (язык программирования)|Pascal]];
* [[PasDoc]]<ref>{{Cite web |url=http://pasdoc.sipsolutions.net/ |title=PasDoc — pasdoc<!-- Заголовок добавлен ботом --> |access-date=2009-09-07 |archive-date=2016-12-20 |archive-url=https://web.archive.org/web/20161220073637/http://pasdoc.sipsolutions.net/ |deadlink=no }}</ref> — языке [[Delphi (язык программирования)|Delphi]]/[[Pascal (язык программирования)|Pascal]];
* [[perldoc]]<ref>http://perldoc.perl.org/</ref> — языке [[Perl]] (включен в стандартный дистрибутив);
* [[perldoc]]<ref>{{Cite web |url=http://perldoc.perl.org/ |title=Perl programming documentation — perldoc.perl.org<!-- Заголовок добавлен ботом --> |access-date=2009-06-17 |archive-date=2009-01-30 |archive-url=https://web.archive.org/web/20090130002833/http://perldoc.perl.org/ |deadlink=no }}</ref> — языке [[Perl]] (включен в стандартный дистрибутив);
* [[PhpDocumentor]] и [[PHPDoc]] (адаптация [[Javadoc]] для использования с [[PHP]]) — языке [[PHP]];
* [[PhpDocumentor]] и [[PHPDoc]] (адаптация [[Javadoc]] для использования с [[PHP]]) — языке [[PHP]];
* [[:en:POD|POD]]{{ref-en}};
* [[:en:POD|POD]]{{ref-en}};
* [[RDoc]]<ref>http://rdoc.sourceforge.net</ref> — языке [[Ruby]];
* [[RDoc]]<ref>{{Cite web |url=http://rdoc.sourceforge.net/ |title=RDoc — Document Generator for Ruby Source<!-- Заголовок добавлен ботом --> |access-date=2022-06-19 |archive-date=2022-06-06 |archive-url=https://web.archive.org/web/20220606211041/http://rdoc.sourceforge.net/ |deadlink=no }}</ref> — языке [[Ruby]];
* [[ROBODoc]]<ref>{{Cite web |url=http://www.xs4all.nl/~rfsber/Robo/robodoc.html |title=ROBODoc — automating the software documentation process<!-- Заголовок добавлен ботом --> |access-date=2006-01-27 |archive-date=2011-05-13 |archive-url=https://web.archive.org/web/20110513234924/http://www.xs4all.nl/~rfsber/Robo/robodoc.html |deadlink=no }}</ref>;
* [[ROBODoc]]<ref>http://www.xs4all.nl/~rfsber/Robo/robodoc.html</ref>;
* [[:en:TwinText|TwinText]]{{ref-en}};
* [[:en:TwinText|TwinText]]{{ref-en}};
* [[NDoc]]<ref>http://ndoc.sourceforge.net/</ref> — языках [[C Sharp|C#]], [[VB.NET]] и других языках платформы [[Microsoft .NET|.NET]];
* [[NDoc]]<ref>{{Cite web |url=http://ndoc.sourceforge.net/ |title=NDoc Online<!-- Заголовок добавлен ботом --> |access-date=2006-01-27 |archive-date=2006-07-03 |archive-url=https://web.archive.org/web/20060703024816/http://ndoc.sourceforge.net/ |deadlink=no }}</ref> — языках [[C Sharp|C#]], [[VB.NET]] и других языках платформы [[.NET Framework|.NET]];
* [[Sandcastle]] — [[IDE]] [[.NET Framework]] и [[Microsoft Visual Studio]];
* [[Sandcastle]]  для [[C Sharp|C#]], [[VB.NET]] и других языков платформы [[.NET Framework|.NET]];
* [[Sphinx (генератор документации)|Sphinx]] — языке [[Python]]<ref>[http://blog.doughellmann.com/2009/02/writing-technical-documentation-with.html Doug Hellmann, Writing Technical Documentation with Sphinx, Paver, and Cog] {{Wayback|url=http://blog.doughellmann.com/2009/02/writing-technical-documentation-with.html |date=20130116234041 }}</ref>;
* [[VBdocman]]<ref>http://www.helixoft.com/vbdocman/</ref> — языке [[VB6]];
* [[VBdocman]]<ref>http://www.helixoft.com/vbdocman/{{Недоступная ссылка|date=2018-06|bot=InternetArchiveBot }}</ref> — языке [[VB6]];
* [[VSdocman]] (ранее VBdocman .NET) — языков [[VB.NET]] и [[C Sharp|C#]];
* [[VSdocman]] (ранее VBdocman .NET) — языков [[VB.NET]] и [[C Sharp|C#]];
* [[Грамотное программирование | WEB]] / [[CWEB]]<ref>http://sunburn.stanford.edu/~knuth/cweb.html</ref>;
* [[Грамотное программирование|WEB]] / [[CWEB]]<ref>[http://sunburn.stanford.edu/~knuth/cweb.html Knuth and Levy:CWEB<!-- Заголовок добавлен ботом -->] {{webarchive|url=https://web.archive.org/web/20121120183829/http://sunburn.stanford.edu/~knuth/cweb.html |date=2012-11-20 }}</ref>;
* [[XHelpGen]] — языке [[Delphi]] (входит в состав библиотеки KOL/MCK).
* [[XHelpGen]] — языке [[Delphi (язык программирования)|Delphi]] (входит в состав библиотеки KOL/MCK).

* [http://phpdox.de/ PHPDox] — проекты PHP.
== См. также ==

* [[Стандарт оформления кода]]

== Ссылки ==
<references />


== Примечания ==
{{примечания}}


[[Категория:Генераторы документации|*]]
[[Категория:Генераторы документации|*]]
[[Категория:Стандарт оформления кода]]
[[Категория:Стандарт оформления кода]]

[[cs:Generátor dokumentace]]
[[de:Software-Dokumentationswerkzeug]]
[[en:Documentation generator]]
[[es:Generador de documentación]]
[[fr:Générateur de documentation]]
[[ja:ドキュメンテーションジェネレータ]]
[[nl:Documentatiegenerator]]

Текущая версия от 20:08, 21 июля 2024

Генератор документации — программа или пакет программ, позволяющая получать документацию, предназначенную для программистов (документация на 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)
  {
      . . .
  }

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

[править | править код]

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

Примечания

[править | править код]
  1. HappyDoc Source Documentation. Дата обращения: 27 января 2006. Архивировано 27 ноября 2020 года.
  2. PasDoc — pasdoc. Дата обращения: 7 сентября 2009. Архивировано 20 декабря 2016 года.
  3. Perl programming documentation — perldoc.perl.org. Дата обращения: 17 июня 2009. Архивировано 30 января 2009 года.
  4. RDoc — Document Generator for Ruby Source. Дата обращения: 19 июня 2022. Архивировано 6 июня 2022 года.
  5. ROBODoc — automating the software documentation process. Дата обращения: 27 января 2006. Архивировано 13 мая 2011 года.
  6. NDoc Online. Дата обращения: 27 января 2006. Архивировано 3 июля 2006 года.
  7. Doug Hellmann, Writing Technical Documentation with Sphinx, Paver, and Cog Архивная копия от 16 января 2013 на Wayback Machine
  8. http://www.helixoft.com/vbdocman/ (недоступная ссылка)
  9. Knuth and Levy:CWEB Архивировано 20 ноября 2012 года.