<?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>Le Blog de Nukleo &#187; javascript</title>
	<atom:link href="https://www.nukleo.fr/blog/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.nukleo.fr/blog</link>
	<description>Un blog de webdesign et développement</description>
	<lastBuildDate>Tue, 04 Mar 2014 15:50:19 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>L&#8217;importance de commenter son code</title>
		<link>https://www.nukleo.fr/blog/importance-de-commenter-son-code/</link>
		<comments>https://www.nukleo.fr/blog/importance-de-commenter-son-code/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 06:29:16 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nukleo.fr/blog/?p=30</guid>
		<description><![CDATA[On ne le dira jamais assez, il est important &#8211; voir crucial &#8211; de correctement commenter le code qu&#8217;on écrit. Dans certains cas le bénéfice sera immédiat, dans tous les cas c&#8217;est sur le moyen/long terme que le bénéfice se fera ressentir… Pourquoi commenter ? Les intérêts sont multiples et variés allant du simple &#171;&#160;j&#8217;en<br /><a href="https://www.nukleo.fr/blog/importance-de-commenter-son-code/">Lire l'article</a>]]></description>
			<content:encoded><![CDATA[<p>On ne le dira jamais assez, il est important &#8211; voir crucial &#8211; de correctement commenter le code qu&rsquo;on écrit. Dans certains cas le bénéfice sera immédiat, dans tous les cas c&rsquo;est sur le moyen/long terme que le bénéfice se fera ressentir…<span id="more-30"></span></p>
<h3>Pourquoi commenter ?</h3>
<p>Les intérêts sont multiples et variés allant du simple &laquo;&nbsp;j&rsquo;en suis là&nbsp;&raquo; à la fin de la journée jusqu&rsquo;à la documentation d&rsquo;une application.</p>
<h4>Commenter pour comprendre ce qu&rsquo;on a fait</h4>
<p>Lors d&rsquo;une session de développement on est souvent confronté à un problème nouveau à gérer et la solution n&rsquo;est pas forcément toujours évidente. On fait quelques recherches, on trouve une solution ou l&rsquo;inspiration pour la créer et on l&rsquo;intègre. Tout fonctionne, c&rsquo;est parfait, on est content.<br />
3 mois plus tard on doit revenir dessus car il faut améliorer la fonction en y intégrant de nouveaux paramètres ou s&rsquo;en resservir pour un autre projet, et là c&rsquo;est le drame : on ne comprend plus comment ça fonctionne, voire même à quoi sert ladite fonction… Les 30 secondes nécessaires à écrire les quelques commentaires salutaires nous auraient permises d&rsquo;éviter une décapilarisation crânienne subite et la perte de pas mal de temps.</p>
<h4>Commenter pour expliquer aux autres</h4>
<p>On peut travailler en équipe sur un projet et d&rsquo;autres développeurs risquent d&rsquo;avoir à intervenir sur votre code pendant que vous faites autre chose. Autre cas de figure : vous développez seul un projet puis un peu plus tard c&rsquo;est un autre développeur qui le reprend ou qui vous rejoin dessus. Vous pouvez également être en train de développer un script/module/librairie/application destiné(e) à être partagé(e) avec d&rsquo;autres (dans le cadre d&rsquo;open source par exemple).<br />
Encore une fois, le temps passé à commenter le code évitera aux autres d&rsquo;être complètement perdus à la lecture de votre chef d&rsquo;oeuvre. Ceci est d&rsquo;autant plus vrai que chaque développeur a son style et sa manière de coder et qui, bien souvent, n&rsquo;est limpide que pour lui-même…</p>
<h4>Commenter pour se faciliter la tâche</h4>
<p>Les IDE de qualité sont capable de lire les commentaires <a href="http://en.wikipedia.org/wiki/PHPDoc">DocBlock</a> et de s&rsquo;en servir pour afficher, lors de la saisie, les informations d&rsquo;utilisation que vous avez pris le soin d&rsquo;entrer. Dans le cadre du développement d&rsquo;une application répartie en plusieurs fichiers (souvent le cas en POO ou en utilisant un framework), les commentaires révèlent toute leur puissance en vous évitant de replonger dans le code d&rsquo;une fonction pour retrouver quels arguments lui passer ou encore ce qu&rsquo;elle retourne.<br />
Ce type de commentaire peut aussi être utilisé pour l&rsquo;écriture automatique de la documentation d&rsquo;une API, par exemple, à l&rsquo;aide d&rsquo;un générateur de documentation tel que <a href="http://www.phpdoc.org/">PHPdocumentor</a> ou <a href="http://en.wikipedia.org/wiki/Doxygen">Doxygen</a></p>
<h3>Les différents types de commentaires</h3>
<p>Il existe 3 types de commentaires : ligne simple, multiligne et DocBlock. Les 2 premiers ne servent qu&rsquo;à indiquer des informations courtes au sein même du code alors que le DocBlock permettra aux IDE et générateurs de documentation d&rsquo;en faire bien plus.</p>
<p>Les commentaires simples et multilignes se présentent de la manière suivante :</p>
<pre class="brush: php; title: ; notranslate">
// je suis un commentaire sur une seule ligne
/* je suis
un commentaire
sur plusieurs lignes */
</pre>
<p>Le commentaire DocBlock se présente ainsi :</p>
<pre class="brush: php; title: ; notranslate">
/**
 * Cette fonction sert à faire ceci...
 * un commentaire
 * sur plusieurs lignes
 *
 * @param string $text Description du paramètre
 * @param int $id Description du paramètre
 * @return bool Description de ce que retourne (ou non) la fonction
*/
</pre>
<p>Notez l&rsquo;utilisation de certains mots clés (@param, @return) dont vous trouverez <a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html">la liste complète ici</a>. C&rsquo;est précisément ces mots-clés qui permettrons à l&rsquo;IDE et au générateur de documentation de travailler.</p>
<h4>Un exemple d&rsquo;utilisation</h4>
<p>Voici un petit exemple d&rsquo;utilisation des 3 types de commentaires dans un modèle du framework <a href="http://codeigniter.com/">CodeIgniter</a> :</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

class Blog_model extends CI_Model {

	// constructeur
	function __construct() {
		parent::__construct();
	}

	/**
	 * Recupération des derniers posts de wordpress
	 *
	 * @param	int $count	Le nombre de posts que l'on veut afficher (optionnel)
	 * @return	object		Les posts à afficher
	 */
	function get_latest_posts($count = 5) {
		// requete mysql à l'aide d'ActiveRecord
		$this-&gt;db-&gt;select('post_title, post_name');
		$this-&gt;db-&gt;where('post_status', 'publish');
		$this-&gt;db-&gt;where('post_type', 'post');
		$this-&gt;db-&gt;limit($count);
		$this-&gt;db-&gt;order_by('ID', 'desc');

		$query = $this-&gt;db-&gt;get('wp_posts');
		
		/* on récupère les posts
		sous forme d'objet */
		$data = $query-&gt;result();

		//var_dump($data); exit; // test des résultats obtenus
		
		// renvoi des résultats au controlleur
		return $data;
	}

}
</pre>
<p>J&rsquo;ai eu la main un peu lourde ici mais en même temps il vaut mieux trop de commentaires que pas assez !</p>
<h3>Conclusion</h3>
<p>Il y a peu de temps j&rsquo;ai eu l&rsquo;occasion d&rsquo;intervenir sur un gros projet de CRM/ERP qui était quasiment abouti et dont le développeur a du se retirer. Malheureusement il n&rsquo;avait pas jugé utile de commenter son code et la conséquence directe à été une grosse perte de temps pour moi (le temps de comprendre le fonctionnement) et une grosse perte de temps et d&rsquo;argent pour le client car il a du supporter le coût de &laquo;&nbsp;temps de compréhension&nbsp;&raquo; du code existant en plus du temps de développement nécessaire au résultat demandé&#8230;<br />
Pour faire bref, <strong>passez un peu de temps à commenter votre code</strong> &#8211; votre client, les utilisateurs de votre code et vous-même ne vous remercieront jamais assez !</p>
]]></content:encoded>
			<wfw:commentRss>https://www.nukleo.fr/blog/importance-de-commenter-son-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
