<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Личный опыт разработки ПО &#187; Документирование</title>
	<atom:link href="http://www.devexp.ru/category/razrabotka/documentation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devexp.ru</link>
	<description>Сборник рецептов</description>
	<lastBuildDate>Tue, 15 Nov 2011 18:38:30 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Использование Doxygen для документирования кода</title>
		<link>http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/</link>
		<comments>http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 20:00:51 +0000</pubDate>
		<dc:creator>Максим Тремпольцев</dc:creator>
				<category><![CDATA[Документирование]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[Doxygen]]></category>

		<guid isPermaLink="false">http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/</guid>
		<description><![CDATA[
Написание документации к коду задача не самая простая и уж точно не самая приятная, но к счастью существуют инструменты которые могут существенно упростить эту процедуру. Для этих целей я использую инструмент Doxygen и именно о нем пойдет речь.
Что такое Doxygen?
Doxygen – это кроссплатформенная система документирования кода с поддержкой языков C++, C, Java, Objective-C, PHP, C# [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doxygen.org/" target="_blank"><img src="http://www.devexp.ru/wp-content/uploads/2010/02/doxygen.png" /></a>
<p>Написание документации к коду задача не самая простая и уж точно не самая приятная, но к счастью существуют инструменты которые могут существенно упростить эту процедуру. Для этих целей я использую инструмент <strong>Doxygen</strong> и именно о нем пойдет речь.</p>
<h2>Что такое Doxygen?</h2>
<p>Doxygen – это кроссплатформенная система документирования кода с поддержкой языков C++, C, Java, Objective-C, PHP, C# (список можно уточнить на <a href="http://www.doxygen.org/" target="_blank">сайте проекта</a>).</p>
<p>Для создания документации достаточно просто писать комментарии в коде, придерживаясь нескольких простых правил. </p>
<p>Doxygen умеет анализировать исходный код проекта и создавать удобную документацию в формате HTML, Latex, RTF, XML, man, CHM.</p>
<h2>Общие соображения</h2>
<ol>
<li>Написание документации должно быть максимально простым, чтобы разработчики не &quot;забывали&quot; это делать. Отсюда вывод, что сложность форматирования комментариев должна быть минимальной.
<p>Хорошо:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">namespace</span> A
<span style="color: #008000;">&#123;</span>
<span style="color: #ff0000; font-style: italic;">/**
Имя класса
&nbsp;
Описание класса
*/</span>
	<span style="color: #0000ff;">class</span> B
	<span style="color: #008000;">&#123;</span>
	<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Плохо:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">namespace</span> A
<span style="color: #008000;">&#123;</span>
	<span style="color: #ff0000; font-style: italic;">/**
	 * Имя класса
	 * 
	 * Описание класса
	 */</span>
	<span style="color: #0000ff;">class</span> B
	<span style="color: #008000;">&#123;</span>
	<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Почему второй вариант хуже? Очевидно, из-за необходимости выравнивать комментарии на одном уровне с комментируемой сущностью, а также из-за избыточных символов <strong>*</strong>. Это может показаться надуманным, но при написании комментариев из нескольких строк проблема проявляется, а при поддержке кода и вовсе становится кошмаром. Вы можете возразить, что подобный стиль делает код &quot;рваным&quot;, но в любом случае комментирование интерфейсов делает код менее читаемым. К счастью все современные редакторы кода позволяют легко свернуть блоки с комментариями, что позволит взглянуть на код без помех.</p>
</li>
<li>Много документации – плохо, так как мало кто будет читать длинные мануалы. Из этого следует, что документированы должны быть только открытые (public) и защищенные (protected) интерфейсы. Закрытые (private) интерфейсы – часть внутренней реализации и не должны быть в руководстве. </li>
</ol>
<p><p style="text-align: right"><a href="http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/">Читать дальше...</a></p><hr noshade style="margin:0;height:1px" />
<small>
<p>Copyright &copy; 2010, <a href="http://www.devexp.ru">Личный опыт разработки ПО</a>. 
Все права защищены. |
<a href="http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/">Постоянная ссылка</a> |
<a href="http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/#comments">11 комментариев</a>
<br/>
Хотите узнать больше? Посмотреть все записи в категории <a href="http://www.devexp.ru/category/razrabotka/documentation/" title="Просмотреть все записи в Документирование" rel="category tag">Документирование</a>,  <a href="http://www.devexp.ru/category/razrabotka/" title="Просмотреть все записи в Разработка" rel="category tag">Разработка</a>.</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.devexp.ru/2010/02/ispolzovanie-doxygen-dlya-dokumentirovaniya-koda/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

