<?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>Dakoo &#187; natural docs</title>
	<atom:link href="http://www.dakoo.cl/tag/natural-docs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dakoo.cl</link>
	<description>¿Te gusta la web?</description>
	<lastBuildDate>Mon, 07 Jun 2010 13:40:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Documentando Código con Natural Docs</title>
		<link>http://www.dakoo.cl/documentando-codigo-con-natural-docs/</link>
		<comments>http://www.dakoo.cl/documentando-codigo-con-natural-docs/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 02:51:46 +0000</pubDate>
		<dc:creator>tuto</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[documentacion]]></category>
		<category><![CDATA[natural docs]]></category>

		<guid isPermaLink="false">http://dakoo.cl/?p=59</guid>
		<description><![CDATA[Para leer este post debes haber tenido que al menos pasar por algunas de las siguientes situaciones: Haber programado al menos el reloj despertador Haber tenido que explicarle al menos a tu mama como se programaba la tele Haber tenido que explicarle a algún cliente por correo que su página web es mejor sin flash [...]]]></description>
			<content:encoded><![CDATA[<p>Para leer este post debes haber tenido que al menos pasar por algunas de las siguientes situaciones:</p>
<ul>
<li>Haber programado al menos el reloj despertador</li>
<li>Haber tenido que explicarle al menos a tu mama como se programaba la tele</li>
<li>Haber tenido que explicarle a algún cliente por correo que su página web es mejor sin flash</li>
<li>Haber tenido que realizar algún manual de usuario</li>
<li>Haber tenido que explicar por msn como conectar un pc a internet</li>
<li>Realizar un mapa a alguien para que llegue a alguna parte</li>
<li>Haber escrito a una polola en una carta las razones por las que no quieres estar con ella</li>
<li>Haber tenido que dejar un papel explicando que el almuerzo lo dejaste listo y que en la olla grande esta el plato fuerte, en la chica la sopa y en el refri la ensalada</li>
<li>Escribir un cheque</li>
</ul>
<h2>¿Qué tiene que ver todo esto con Natural Docs?</h2>
<p> <img src='http://www.dakoo.cl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , Bueno si se fijan, todas las opciones exceptuando las 2 primeras, son acciones en las que has tenido que dejar constancia, tanto en papel, como en digital, de algún procedimiento o acción que realizaste.  Ahora por otra parte, cuando programas o realizas proyectos de software también debemos dejar constancia de lo que hemos realizado, esto se realiza por varias razones: Mejorar la comprensión del problema, Tener registro de lo que se realizó, Poder mejorarlo en el futuro,  Pensar en los que tomaran el código en futuras generaciones( Uno de los mas importantes :p), etc. Todo lindo hasta aquí pero <strong>¿A los computines les gusta realizar esta tarea?, </strong>la respuesta obviamente es <strong>no</strong>, muchas veces llega a ser un martirio, otras no hay tiempo y otras simple y llanamente nos hacemos los lesos y no la hacemos <img src='http://www.dakoo.cl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . <strong>¿Alternativas?</strong>, si,  buscar <a href="http://www.google.cl/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fes.wikipedia.org%2Fwiki%2FDesarrollo_%25C3%25A1gil_de_software&amp;ei=hmeLSsbAJKKxmAfmyvixDQ&amp;usg=AFQjCNHBmaluXYKKWRSoQu2Ld3LvB0EgJg&amp;sig2=CpLKXrqQxqOaQrUYl6-TDw" target="_self">metodologías agiles de desarrollo</a>, las cuales no se basan( no se mal entienda, no las dejan de lado) en la documentación y prefieren dar prioridad a escribir el código, la comunicación con el cliente entre otras. En mi trabajo nosotros utilizamos estas formas de trabajar, pero esto trae consigo que muchas veces no tienes idea nisiquiera de cuál es la magnitud de lo que estás desarrollando y el código que están realizando llega a ser mostruosamente grande.   Por todas estas razones una forma de crear documentación y no &#8220;invadir&#8221; en demasía al programador su &#8220;valioso&#8221; tiempo es utilizar los mismos comentarios que el utiliza en su código para generar una documentación que permite observar funciones, clases, métodos, con sus respectivos atributos y otras cosas que puedan tener.</p>
<p>Ahora a lo que vinimos, despues de esa introducción, vamos a revisar uno software que te toma los comentarios en el código y los transforma en una documentación de muy buena calidad .</p>
<h1><a href="http://www.naturaldocs.org/" target="_self">Natural Docs</a></h1>
<p>Desarrollado por Greg Valure es un generador de documentación escrito en <a href="http://es.wikipedia.org/wiki/Perl" target="_self">PERL</a>. Su forma de uso es muy simple( Suponiendo que estas en linux y tienes instalado PERL) bajamos el archivo comprimido desde <a href="http://www.naturaldocs.org/download/version1.4.html" target="_self">aquí(en la versión estable actual 1.4)</a>.  Una vez que descomprimimos el interior te darás cuenta que posee una serie de archivos y carpetas,junta todo en una carpeta por ejemplo con nombre &#8220;<strong>NaturalDocs</strong>&#8220;. Ahora le das permiso de ejecución al archivo NaturalDocs ( chmod 755 NaturalDocs), con esto ya estamos casi listos para tener nuestra documentación, pero aún faltan algunas cosas por responder.</p>
<h2>¿Soporta todos los lenguajes de programación?</h2>
<p>Casi <img src='http://www.dakoo.cl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , bueno en realidad en la página de <strong>NaturalDocs </strong>aparece que <a href="http://www.naturaldocs.org/languages.html" target="_self">soporta 19 lenguajes</a>, pero existe un truco, si leen bien la documentación existe la posibilidad de que se agreguen mas lenguajes de manera muy simple, solo debes en un archivo de configuración darle la extención de los archivos y la forma en que se comenta.</p>
<h2>¿Los comentarios no deben tener alguna estructura?</h2>
<p>Jejeejej, creian que todo iba a ser tan fácil, pero no se preocupen no es la gran cosa. Por ejemplo si queremos comentar una clase</p>
<pre lang="java">/*
Class: Counter
A class that manages an incrementing counter.
*/
class Counter
{
public:
/*
Constructor: Counter
Initializes the object.
*/
Counter()
{ value = 0; };
/*
Function: Value
Returns the value of the counter.
*/
int Value()
{ return value; };
/*
Function: Increment
Adds one to the counter.
*/
void Increment()
{ value++; };

protected:
/*
Variable: value
The counter's value.
*/
int value;
};</pre>
<p>Como ven no es nada del otro mundo y estoy seguro que muchos de ustedes ya usan comentarios parecidos, ahora existen muchas otras formas de realizar esto y darle mas potencia a la documentación por ejemplo miren con una función</p>
<pre lang="java">/*
 * Function: Multiplicar
 *
 * Multiplica dos enteros.
 *
 * Parameters:
 *    x - El primer entero.
 *    y - El segundo entero.
 *
 * Returns:
 *    El producto de ambos enteros.
 *
 * Ver también:
 *

 */

int Multiplicar (int x, int y)
   {  return x * y;  };</pre>
<p>Ahora le dimos una breve descripción de la funcion, que los parametros que recibe  son x e y, que es lo que retorna y que esa función esta relacionada con otra, la idea es que todo eso despues queda reflejado en la documentación generada.</p>
<p>La gamma de diferentes cosas que puedes realizar con los comentarios descubranlos en la pagina del soft.</p>
<p>Ahora como ejecuto tal maravilla.</p>
<p>Bueno esto es muy simple, anteriormente le habíamos dado permisos de escritura al script NaturalDocs, bueno ahora debemos ejecutarlo con los siguientes parámetros como mínimo</p>
<p><strong>NaturalDocs -i [input (source) directory]<br />
-o [output format] [output directory]<br />
-p [project directory]<br />
[options]</strong></p>
<p>Como eso no dice mucho un ejemplo</p>
<p><strong>NaturalDocs -i home/tuto/My Project/Source<br />
-o FramedHTML home/tuto/My Project/Docs<br />
-p home/tuto/My Project/Natural Docs</strong></p>
<p>Un poco de explicación: La primera dirección que le damos es la carpeta donde tenemos el código que queremos documentar, la segunda direccion es la carpeta donde guardaremos nuestra documentación y la tercera es una carpeta que debemos crear para que NaturalDocs escriba unos archivos( como una carpeta temporal). Existen muchas otras opciones que puedes agregarle pero eso véanlo <a href="http://www.naturaldocs.org/running.html">aca</a> y eso es todo, el soft se encarga de todo, es muy configurable y puedes crear documentaciones muy profesionales ,algunos ejemplo <a href="http://www.naturaldocs.org/users.html">aquí</a>.</p>
<p>Ahora una última pregunta para terminar</p>
<p>¿Existen otros documentadores de código?<br />
Por supuesto y algunos muy o más buenos que este( lo publiqué porque a mi me gusta mucho este soft), por ejemplo <a href="http://es.wikipedia.org/wiki/Comparativa_de_generadores_de_documentaci%C3%B3n">aquí </a>puedes ver una comparativa entre los más populares</p>
<p>Bueno eso por hoy</p>
<p>El link de la página es <a href="http://www.naturaldocs.org">LINK</a></p>
<p>Espero les sirva</p>
<p>saludo tuto</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dakoo.cl/documentando-codigo-con-natural-docs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->