<?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>Miximum &#187; bonne pratique</title>
	<atom:link href="http://www.miximum.fr/tag/bonne-pratique/feed" rel="self" type="application/rss+xml" />
	<link>http://www.miximum.fr</link>
	<description>Le blog d&#039;un ingénieur web freelance</description>
	<lastBuildDate>Wed, 16 Nov 2011 16:25:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Un commentaire, à quoi ça sert ?</title>
		<link>http://www.miximum.fr/bien-developper/96-un-commentaire-a-quoi-ca-sert</link>
		<comments>http://www.miximum.fr/bien-developper/96-un-commentaire-a-quoi-ca-sert#comments</comments>
		<pubDate>Wed, 10 Sep 2008 09:28:48 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Bien développer]]></category>
		<category><![CDATA[bonne pratique]]></category>
		<category><![CDATA[commentaires]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=96</guid>
		<description><![CDATA[Les commenaires, tout le monde les utilise, mais finalement, sait-on vraiment à quoi ils servent ?]]></description>
			<content:encoded><![CDATA[<div class="postimg alignleft"><a href="http://www.flickr.com/photos/24469297@N05/2840190384/" title="code de teeboo2734, sur Flickr"><img src="http://farm4.static.flickr.com/3290/2840190384_bb23009d79.jpg" width="308" height="231" alt="code" /></a></div>
<p>Quels sont ceux qui, parmis vous qui me lisez, ont d&eacute;j&agrave; re&ccedil;u durant leurs &eacute;tudes <a href="http://www.miximum.fr/bien-developper/89-les-commentaires-cest-mieux-quand-y-en-a-pas">un cours int&eacute;gralement d&eacute;di&eacute; &agrave; l&#8217;utilisation des commentaires</a><span class="fine">&nbsp;</span>? Allons, levez la main<span class="fine">&nbsp;</span>! Hum&#8230; &Ccedil;a ne fait pas beaucoup.</p>
<p>En programmation, l&#8217;utilisation des commentaires est g&eacute;n&eacute;ralement consid&eacute;r&eacute;e comme ne n&eacute;cessitant pas d&#8217;explication particuli&egrave;re. Un commentaire, c&#8217;est un commentaire, point. Aussi, combien de fois n&#8217;ai-je entendu, au cours de mes &eacute;tudes, cette phrase&nbsp;: &laquo;&nbsp;&nbsp;Il faut mettre des commentaires&nbsp;&nbsp;&raquo;, sans pour aurant qu&#8217;on m&#8217;explique &agrave; quoi servait vraiment un commentaire.</p>
<p>Pourtant, la pratique a montr&eacute; que si un commentaire pouvait contribuer &agrave; faciliter la relecture du code, il pouvait &eacute;galement produire l&#8217;effet inverse. Ce qui montre bien que la <strong>bonne</strong> pratique du commentaire n&#8217;est pas si &eacute;vidente que &ccedil;a.</p>
<p>En fait, il existe m&ecirc;me un d&eacute;bat d&#8217;expert entre les partisans de deux extr&ecirc;mes&nbsp;: ceux qui militent <a href="http://blog.uncommons.org/2008/07/25/no-your-code-is-not-so-great-that-it-doesnt-need-comments/">pour l&#8217;utilisation syst&eacute;matique et massive des commentaires</a>, et <a href="http://www.codinghorror.com/blog/archives/001150.html">ceux qui pr&ocirc;nent leur &eacute;radication totale</a>.</p>
<h2>Faut-il &eacute;radiquer les commentaires<span class="fine">&nbsp;</span>?</h2>
<p>Les arguments des deux camps sont &agrave; peu pr&egrave;s les suivants&nbsp;:</p>
<p><strong>Les commentaires, c&#8217;est bien&nbsp;:</strong></p>
<ul>
<li>Un code sans commentaire est incompr&eacute;hensible</li>
<li>Un code est plus facile &agrave; comprendre avec des commentaires</li>
<li>Les commentaires permettent d&#8217;expliquer le propos du code &agrave; un plus haut niveau d&#8217;abstraction</li>
<li>Les commentaires permettent de scanner le code</li>
<li>Il vaut mieux qu&#8217;il y en ait trop que pas assez</li>
<li>De toutes fa&ccedil;ons, &ccedil;a ne peut pas faire de mal</li>
</ul>
<p><strong>Les commentaires, c&#8217;est le mal absolu&nbsp;:</strong></p>
<ul>
<li>Les commentaires servent juste &agrave; r&eacute;p&eacute;ter le code en moins pr&eacute;cis</li>
<li>Les commentaires rajoutent de la complexit&eacute; et doivent &ecirc;tre maintenus en m&ecirc;me temps que le code</li>
<li>Mal utilis&eacute;, un commentaire complexifie la lecture plus qu&#8217;il ne la facilite</li>
<li>Il vaut mieux refactoriser son code que rajouter un commentaire</li>
<li>Si un d&eacute;veloppeur ne peut pas rendre son code clair, comment voulez vous qu&#8217;il &eacute;crive des commentaires clairs<span class="fine">&nbsp;</span>?</li>
<li>Je dois d&eacute;j&agrave; me casser le c** &agrave; lire du code, il faudrait encore que je me coltine les commentaires<span class="fine">&nbsp;</span>?</li>
<li>Les commentaires sont une perte de ressource</li>
<li>Les commentaires, c&#8217;est pour les newbies</li>
</ul>
<p>Chacun des camps dispose d&#8217;arguments plus ou moins valables. Au del&agrave; de ces deux extr&ecirc;mes, le d&eacute;veloppeur pragmatique s&#8217;attachera &agrave; comprendre &agrave; quoi servent les commentaires, pour bien les utiliser.</p>
<h2>&Agrave; quoi servent les commentaires<span class="fine">&nbsp;</span>?</h2>
<p>Pour mettre les pendules &agrave; l&#8217;heure, je dirai que les commentaires ne servent pas &agrave;&nbsp;:</p>
<ul>
<li><strong>Raconter la vie du d&eacute;veloppeur</strong>&nbsp;: C&#8217;est marrant comme certains d&eacute;veloppeurs adorent &eacute;taler leurs &eacute;tats d&#8217;&acirc;mes ou raconter leur soir&eacute;e dans leur code source. Finalement, un code, c&#8217;est un peu comme un journal intime. C&#8217;est plein de vie.
<p>Cela dit, la vie du d&eacute;veloppeur pr&eacute;c&eacute;dent n&#8217;est pas d&#8217;une grande aide quand il faut corriger ses anneries.
</li>
<li>
<strong>Supprimer des bouts de code devenus inutiles</strong>&nbsp;: Oui, parce qu&#8217;il y a aussi des d&eacute;veloppeurs qui sont sentimentalement attach&eacute;s &agrave; leur code. Alors, m&ecirc;me quand ce code devient inutile, ils n&#8217;ont pas le coeur de le supprimer purement et simplement. Ils pr&eacute;f&egrave;rent juste le commenter, comme pour en conserver la trace (Pour info, <a href="http://fr.wikipedia.org/wiki/Syllogomanie">ce trouble porte un nom&nbsp;: la syllogomanie</a>).
</li>
<li><strong>R&eacute;&eacute;crire le code en langage naturel</strong>&nbsp;: Parce que, c&#8217;est bien connu, m&ecirc;me pour un d&eacute;veloppeur aguerri, lire du code, c&#8217;est dur. Alors, on va &ecirc;tre gentil, et lui traduire le truc complet.

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="co1">// charge le fichier xml</span>
<span class="re0">$xml</span> <span class="sy0">=</span> <span class="sy0">@</span><a href="http://www.php.net/simplexml_load_file"><span class="kw3">simplexml_load_file</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/urlencode"><span class="kw3">urlencode</span></a><span class="br0">&#40;</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">requestUrl</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="co1">// si le fichier n'a pas été bien chargé</span>
<span class="kw1">if</span><span class="br0">&#40;</span> <span class="sy0">!</span> <span class="re0">$xml</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="co1">// récupère la dernière erreur</span>
    <span class="re0">$error</span> <span class="sy0">=</span> <a href="http://www.php.net/error_get_last"><span class="kw3">error_get_last</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="co1">// enregistre un message de log</span>
    sfContext<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">getLogger</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">err</span><span class="br0">&#40;</span> <span class="re0">$error</span><span class="br0">&#91;</span><span class="st_h">'message'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="co1">// déclenche une exception</span>
    throw <span class="kw2">new</span> FeedburnerApiException<span class="br0">&#40;</span> <span class="st0">&quot;Erreur de connexion à l'API FeedBurner&quot;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>Ce genre de commentaire est tout &agrave; fait inutile&nbsp;: il alourdit le code source, impose au d&eacute;veloppeur de lire plus de choses, et n&#8217;importe absolument aucune information utile.
</li>
<li><strong>Indiquer qui a introduit telle modification</strong>, ou corrig&eacute; tel bug&nbsp;:

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">==</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="re0">$size</span> <span class="sy0">=</span> <span class="st0">&quot;font-size: 9pt;&quot;</span><span class="sy0">;</span> <span class="co1">// thibault : fixes #453834</span>
<span class="kw1">else</span> <span class="re0">$size</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span></pre></div></div>

<p>Et les gestionnaires de source, c&#8217;est pour les chiens<span class="fine">&nbsp;</span>? <img src='http://www.miximum.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><strong>Trouver un excuse pour &eacute;crire un code compliqu&eacute;</strong>&nbsp;: Ouais, d&#8217;accord, mon code est incompr&eacute;hensible, mais c&#8217;est pas grave, je l&#8217;ai bien comment&eacute;.
</li>
</ul>
<p>En revanche, un commentaire sert &agrave;&nbsp;:</p>
<ul>
<li><strong>Clarifier l&#8217;intention du d&eacute;veloppeur</strong>&nbsp;: Les commentaires sont utiles pour expliquer &agrave; un haut niveau d&#8217;abstraction pourquoi une portion de code a &eacute;t&eacute; &eacute;crite.
</li>
<li><strong>R&eacute;pondre &agrave; toute question l&eacute;gitime <em>dont la r&eacute;ponse ne se trouve pas dans le code</em></strong>&nbsp;: Mon code est complexe<span class="fine">&nbsp;</span>? J&#8217;ai utilis&eacute; un algorithme particulier<span class="fine">&nbsp;</span>? Oui, mais il y a une bonne raison, alors, ne refactorisez pas, de toutes fa&ccedil;ons j&#8217;ai d&eacute;j&agrave; test&eacute; toutes les solutions plus simples.</li>
<li><strong>Expliquer quelque chose de vraiment complexe</strong>&nbsp;: &agrave; condition que cette chose soit l&eacute;gitimement complexe, mais le cas est rare. Dans le cas contraire, mieux vaut simplifier le code d&#8217;abord.</li>
<li><strong>G&eacute;n&eacute;rer la documentation d&#8217;un code r&eacute;utilisable</strong>&nbsp;: dans le cas ou un code est &eacute;crit sp&eacute;cifiquement pour &ecirc;tre r&eacute;utilis&eacute; (API, biblioth&egrave;que de fonctions, framework, etc.), il est fort pratique d&#8217;utiliser des commentaires style javadoc pour g&eacute;n&eacute;rer automatiquement la documentation des interfaces publiques.</li>
<li><strong>Faciliter la lecture du code</strong>&nbsp;: Quelques commentaires bien plac&eacute;s peuvent aider &agrave; scanner le code et permettre de trouver plus facilement et rapidement la portion recherch&eacute;e.</li>
</ul>
<p>Alors, <a href="http://www.miximum.fr/bien-developper/89-les-commentaires-cest-mieux-quand-y-en-a-pas">les commentaires, &laquo;&nbsp;&nbsp;c&#8217;est mieux quand yen a pas&nbsp;&nbsp;&raquo;</a><span class="fine">&nbsp;</span>? En fait, point n&#8217;est besoin d&#8217;&ecirc;tre aussi extremiste. En revanche, j&#8217;estime qu&#8217;il est bon d&#8217;&eacute;crire son code en partant du principe qu&#8217;il devra &ecirc;tre compr&eacute;hensible sans commentaire. C&#8217;est un &eacute;tat d&#8217;esprit qui ne peut qu&#8217;&ecirc;tre b&eacute;n&eacute;fique &agrave; la qualit&eacute; et la lisibilit&eacute; du code.</p>
<p>Seuls devraient &ecirc;tre conserv&eacute;s les commentaires qui ne peuvent pas &ecirc;tre supprim&eacute;s, raccourcis ou refactoris&eacute;s sans impacter sur la bonne lisibilit&eacute; du code.</p>
<p>Et vous, qu&#8217;en pensez vous<span class="fine">&nbsp;</span>? Les commentaires, glop ou pas glop<span class="fine">&nbsp;</span>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/bien-developper/96-un-commentaire-a-quoi-ca-sert/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Du chauvinisme dans le développement logiciel</title>
		<link>http://www.miximum.fr/culture/91-du-chauvinisme-dans-le-developpement-logiciel</link>
		<comments>http://www.miximum.fr/culture/91-du-chauvinisme-dans-le-developpement-logiciel#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:41:29 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Culture informatique]]></category>
		<category><![CDATA[bonne pratique]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=91</guid>
		<description><![CDATA[photo credit&#160;: next sentence Il y a des tas de cas o&#249; l&#8217;anglicisation de notre langue m&#8217;&#233;nerve. C&#8217;est vrai &#231;a, la langue fran&#231;aise est belle, bordel&#160;! Autant s&#8217;en servir, nan&#160;? Qu&#8217;est-ce que c&#8217;est que ces parisiens qui parlent fran&#231;ais comme s&#8217;ils &#233;taient n&#233; &#224; New-York&#160;? &#192; l&#8217;eurovision, par exemple. Qui est l&#8217;abruti qui a d&#233;cr&#233;t&#233; [...]]]></description>
			<content:encoded><![CDATA[<div class="postimg alignleft"><a href="http://www.flickr.com/photos/26336018@N05/2729002753/" title="#5 August 1st week." target="_blank"><img src="http://farm4.static.flickr.com/3113/2729002753_3e78ceaae1_m.jpg" alt="#5 August 1st week." border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/26336018@N05/2729002753/" title="next sentence" target="_blank">next sentence</a></small></div>
<p>Il y a des tas de cas o&ugrave; l&#8217;anglicisation de notre langue m&#8217;&eacute;nerve. C&#8217;est vrai &ccedil;a, la langue fran&ccedil;aise est belle, bordel<span class="fine">&nbsp;</span>! Autant s&#8217;en servir, nan<span class="fine">&nbsp;</span>? Qu&#8217;est-ce que c&#8217;est que ces parisiens qui parlent fran&ccedil;ais comme s&#8217;ils &eacute;taient n&eacute; &agrave; New-York<span class="fine">&nbsp;</span>?</p>
<p>&Agrave; l&#8217;eurovision, par exemple. Qui est l&#8217;abruti qui a d&eacute;cr&eacute;t&eacute; que c&#8217;&eacute;tait intelligent de chanter en anglais<span class="fine">&nbsp;</span>? (Bon, je r&acirc;le, mais en fait, je m&#8217;en fout, de l&#8217;eurovision. Une chanson reste mauvaise quelque soit la langue dans laquelle elle est chant&eacute;e<sup><a href="#footnote-1-91" id="footnote-link-1-91" title="Voir la note.">[1]</a></sup> ). O&ugrave; quand j&#8217;entends des jeunes qui se donnent rendez-vous&nbsp;: &laquo;&nbsp;&nbsp;On se voit &agrave; quatre heure et demy&nbsp;&nbsp;&raquo; (prononcer &laquo;&nbsp;&nbsp;a&iuml;e&nbsp;&nbsp;&raquo;). &Ccedil;a me fait bien rigoler, tout &ccedil;a.</p>
<p>Bref<span class="fine">&nbsp;</span>! Oui, vous l&#8217;avez devin&eacute;, je fais parti de ces aga&ccedil;ants individus qui aiment leur langue, et qui pr&eacute;f&egrave;rent utiliser des mots fran&ccedil;ais quand ils peuvent<sup><a href="#footnote-2-91" id="footnote-link-2-91" title="Voir la note.">[2]</a></sup>.</p>
<p>En revanche, je consid&egrave;re qu&#8217;il y a certains domaines dans lesquels un chauvinisme linguistique exacerb&eacute; est franchement d&eacute;plac&eacute;. Qui a envie de parler de &laquo;&nbsp;&nbsp;bogue&nbsp;&nbsp;&raquo; ou de &laquo;&nbsp;&nbsp;fureteur&nbsp;&nbsp;&raquo;<sup><a href="#footnote-3-91" id="footnote-link-3-91" title="Voir la note.">[3]</a></sup>, par exemple<span class="fine">&nbsp;</span>? Vous<span class="fine">&nbsp;</span>? Pas moi<span class="fine">&nbsp;</span>! Et surtout, parmi les pires olibrius qui font passer le chauvinisme avant l&#8217;intelligence, il y a <strong>les d&eacute;veloppeurs qui codent en fran&ccedil;ais</strong><span class="fine">&nbsp;</span>!</p>
<h2>D&eacute;velopper en fran&ccedil;ais, une fausse bonne id&eacute;e<span class="fine">&nbsp;</span>?</h2>
<p>&Agrave; mon sens, coder en fran&ccedil;ais est une id&eacute;e absurde. La langue fran&ccedil;aise, avec sa complexit&eacute; et ses subtilit&eacute;s, est particuli&egrave;rement adapt&eacute;e pour la po&eacute;sie et la diplomatie. Mais pas pour d&eacute;velopper.</p>
<p>Je suis forc&eacute;ment attrist&eacute; quand <a href="http://linuxfr.org/2008/05/10/24061.html">je vois fermer un &eacute;diteur de tr&eacute;s bons livres en fran&ccedil;ais</a>. Mais quand on d&eacute;veloppe, la langue anglaise est tellement plus compacte, tellement plus d&eacute;nu&eacute;e d&#8217;ambiguit&eacute;s.</p>
<p>Parmi ces deux exemples, lequel est le plus clair<span class="fine">&nbsp;</span>?</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw2">function</span> obtenirLaListeDesUtilisateurs<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">...</span>
<span class="co1">// vs</span>
<span class="kw2">function</span> getUserList<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">...</span></pre></div></div>

<p>Alors<span class="fine">&nbsp;</span>?! Hein<span class="fine">&nbsp;</span>!? Hein<span class="fine">&nbsp;</span>?! Dites voir un peu<span class="fine">&nbsp;</span>?!</p>
<p>En plus d&#8217;&ecirc;tre g&eacute;n&eacute;ralement plus verbeuse, la langue fran&ccedil;aise a la triste singularit&eacute; de faire un usage intensif des particules et des apostrophes. Et les particules et les apostrophes, c&#8217;est difficile de les retranscrire en <a href="http://fr.wikipedia.org/wiki/CamelCase">camelCase</a>&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw2">function</span> obtenirLaDateDeLArticle<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="co1">// vs</span>
<span class="kw2">function</span> getArticleDate<span class="br0">&#40;</span><span class="br0">&#41;</span></pre></div></div>

<p>Et les accents<span class="fine">&nbsp;</span>? Comment on fait pour les accents<span class="fine">&nbsp;</span>? Comme si c&#8217;&eacute;tait d&eacute;j&agrave; pas assez le bordel avec toutes ces histoire d&#8217;encodage (D&#8217;ailleurs, <a href="http://www.logineo.fr/2007/10/26/martine-ecrit-en-utf-8/">m&ecirc;me Martine de n&#8217;y retrouve plus</a>). Tous les participes pass&eacute;s &agrave; la trappe<span class="fine">&nbsp;</span>! Comment on fait la diff&eacute;rence entre un pr&eacute;sent simple et un participe pass&eacute;, hein<span class="fine">&nbsp;</span>?! Mettons que je veuille r&eacute;cup&eacute;rer le dernier utilisateur factur&eacute;&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw2">function</span> obtenirDernierUtilisateurFacture<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">...</span></pre></div></div>

<p>Et le gars qui relit &ccedil;a, comment il sait si la fonction renvoie une facture ou un utiliseur<span class="fine">&nbsp;</span>? Tandis qu&#8217;en anglais&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw2">function</span> getLastFacturedUser<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">...</span></pre></div></div>

<p>Clair, direct, pr&eacute;cis. Sans appel. <a href="http://www.miximum.fr/humour/24-langlais-la-langue-de-lit">L&#8217;anglais est la langue de l&#8217;IT</a> (m&ecirc;me si ce n&#8217;est pas une raison pour en abuser). Utiliser l&#8217;anglais dans son code, ce n&#8217;est pas pr&ecirc;ter un quelconque serment d&#8217;all&eacute;geance &agrave; la supr&eacute;matie &Eacute;tasunienne, ni m&ecirc;me faire preuve de snobisme. C&#8217;est simplement faire preuve de professionnalisme et reconna&icirc;tre que <strong>la lange anglaise est la r&eacute;f&eacute;rence dans le monde informatique</strong>, et qu&#8217;elle est mieux adapt&eacute;e pour &eacute;crire un code clair et compr&eacute;hensible.</p>
<p>Quand aux individus qui font passer leur chauvinisme avant la clart&eacute; et la lisibilit&eacute; de leur code, je vous laisse deviner ce que j&#8217;en pense <img src='http://www.miximum.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Notes&nbsp;:</h4><ol class="footnotes"><li id="footnote-1-91">Oui, je suis m&eacute;chant. Et c&#8217;est gratuit, en plus.  [<a href="#footnote-link-1-91">retour</a>]</li><li id="footnote-2-91">Vous en connaissez tous. Ils sont vraiment p&eacute;nibles, n&#8217;est-ce pas<span class="fine">&nbsp;</span>?  [<a href="#footnote-link-2-91">retour</a>]</li><li id="footnote-3-91">En revanche, &laquo;&nbsp;&nbsp;courriel&nbsp;&nbsp;&raquo; me plait bien  [<a href="#footnote-link-3-91">retour</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/culture/91-du-chauvinisme-dans-le-developpement-logiciel/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Les commentaires, c&#8217;est mieux quand y-en a pas</title>
		<link>http://www.miximum.fr/bien-developper/89-les-commentaires-cest-mieux-quand-y-en-a-pas</link>
		<comments>http://www.miximum.fr/bien-developper/89-les-commentaires-cest-mieux-quand-y-en-a-pas#comments</comments>
		<pubDate>Wed, 30 Jul 2008 07:42:54 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Bien développer]]></category>
		<category><![CDATA[bonne pratique]]></category>
		<category><![CDATA[commentaires]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=89</guid>
		<description><![CDATA[photo credit&#160;: fredpanassac Ah&#160;! L&#8217;IUT&#160;! Petit moment de nostalgie. Je me rem&#233;more mon arriv&#233;e dans ce que j&#8217;imaginais alors &#234;tre un temple du savoir, un panth&#233;on de la connaissance. Je me voyais d&#233;j&#224; marchant en toge parmis les v&#233;n&#233;rables &#233;rudits qui, au prix d&#8217;une vie de labeur et d&#8217;intense r&#233;flexion, avaient amass&#233; une telle comp&#233;tence [...]]]></description>
			<content:encoded><![CDATA[<div class="postimg alignleft"><a href="http://www.flickr.com/photos/10699036@N08/2293620128/" title="PARIS : statue de Claude Bernard" target="_blank"><img src="http://farm3.static.flickr.com/2063/2293620128_a8e53c851e_m.jpg" alt="PARIS : statue de Claude Bernard" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/10699036@N08/2293620128/" title="fredpanassac" target="_blank">fredpanassac</a></small></div>
<p>Ah<span class="fine">&nbsp;</span>! L&#8217;IUT<span class="fine">&nbsp;</span>! Petit moment de nostalgie. Je me rem&eacute;more mon arriv&eacute;e dans ce que j&#8217;imaginais alors &ecirc;tre un temple du savoir, un panth&eacute;on de la connaissance. Je me voyais d&eacute;j&agrave; marchant en toge parmis les v&eacute;n&eacute;rables &eacute;rudits qui, au prix d&#8217;une vie de labeur et d&#8217;intense r&eacute;flexion, avaient amass&eacute; une telle comp&eacute;tence que le simple fait de leur baiser les pieds me remplirait d&#8217;honneur et de joie.</p>
<p>Enfin<span class="fine">&nbsp;</span>! Enfin, termin&eacute;es les p&eacute;nibles heures, incomfortablement assis devant un cahier &agrave; &eacute;tudier des mati&egrave;res inutiles et obsol&egrave;tes. Enfin, j&#8217;allais pouvoir m&#8217;abreuver au calice de la culture informatique. J&#8217;allais boire jusqu&#8217;&agrave; la lie le doux hydromel de cette noble science.</p>
<p>Une larme me monte au yeux lorsqu&#8217;&agrave; ma m&eacute;moire remonte avec nostalgie le souvenir de mon second cours de programmation (le premier &eacute;tait une fabuleuse analogie entre la programmation et le tricot irlandais). Je revois encore l&#8217;honorable professeur, barbu et imposant comme il se doit, p&eacute;n&eacute;trer d&#8217;un pas s&ucirc;r et tranquille dans l&#8217;amphi bond&eacute;, et d&#8217;un seul regard, serein mais implacable, imposer le silence aux &eacute;tudiants.</p>
<p>Apr&egrave;s nous avoir consid&eacute;r&eacute; quelques secondes, l&#8217;&eacute;minent docteur, toujours sans dire un mot, se tourne vers l&#8217;immense tableau vert, saisi une craie, et commence &agrave; &eacute;crire. Dans la salle, pas un mot, pas un chuchotement. Nous sommes tous fig&eacute;s, &eacute;coutant religieusement les crissements de la craie, attendant ce qui va suivre. Notre curiosit&eacute;, notre soif d&#8217;apprendre sont telles, que nous n&#8217;osons presque plus respirer.</p>
<p>Apr&egrave;s deux interminables minutes, l&#8217;estimable savant pose sa craie, se frotte les mains en se tournant vers nous, nous consid&egrave;re d&#8217;un oeil malicieux, et nous lance, narquois&nbsp;: &laquo;&nbsp;&nbsp;Alors, quelque peut-il me dire ce que cela signifie<span class="fine">&nbsp;</span>?&nbsp;&nbsp;&raquo;</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw4">void</span> action<span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span> var1<span class="sy0">,</span> <span class="kw4">int</span><span class="sy0">*</span> var2<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="sy0">*</span>var1 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">+</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
    <span class="sy0">*</span>var2 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">-</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
    <span class="sy0">*</span>var1 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">-</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw4">int</span> main<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw4">int</span> var1 <span class="sy0">=</span> <span class="nu0">5</span><span class="sy0">;</span>
    <span class="kw4">int</span> var2 <span class="sy0">=</span> <span class="nu0">7</span><span class="sy0">;</span>
&nbsp;
    action<span class="br0">&#40;</span><span class="sy0">&amp;</span>var1<span class="sy0">,</span> <span class="sy0">&amp;</span>var2<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;%d %d<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> var1<span class="sy0">,</span> var2<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>Apr&egrave;s quelques dizaines de secondes &agrave; rester dubitatif, observant ces symboles cabalistiques les yeux pliss&eacute;s par l&#8217;effort de r&eacute;flexion, nous d&ucirc;mes bien avouer notre impuissance &agrave; leur attacher un sens. </p>
<p>Amus&eacute;, l&#8217;honor&eacute; p&eacute;dagogue, celui qu&#8217;au fond de nous nous appellions d&eacute;j&agrave; &laquo;&nbsp;&nbsp;ma&icirc;tre&nbsp;&nbsp;&raquo;, repris sa craie et compl&eacute;ta le blanc qu&#8217;il avait judicieusement laiss&eacute; au tableau.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="coMULTI">/*
 * Type : procédure
 * Paramètres : 2 entiers var1 et var2
 * Résultat : Rien
 * Action : cette fonction échange les deux valeurs des variables passées en paramètres,
 * sans utiliser de variable intermédiaire
 */</span>
<span class="kw4">void</span> action<span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span> var1<span class="sy0">,</span> <span class="kw4">int</span><span class="sy0">*</span> var2<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="sy0">*</span>var1 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">+</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
    <span class="sy0">*</span>var2 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">-</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
    <span class="sy0">*</span>var1 <span class="sy0">=</span>  <span class="sy0">*</span>var1 <span class="sy0">-</span> <span class="sy0">*</span>var2<span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw4">int</span> main<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw4">int</span> var1 <span class="sy0">=</span> <span class="nu0">5</span><span class="sy0">;</span>
    <span class="kw4">int</span> var2 <span class="sy0">=</span> <span class="nu0">7</span><span class="sy0">;</span>
&nbsp;
    action<span class="br0">&#40;</span><span class="sy0">&amp;</span>var1<span class="sy0">,</span> <span class="sy0">&amp;</span>var2<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;%d %d<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> var1<span class="sy0">,</span> var2<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>&laquo;&nbsp;&nbsp;Et maintenant, comprenez vous<span class="fine">&nbsp;</span>?&nbsp;&nbsp;&raquo; &Eacute;videmment<span class="fine">&nbsp;</span>! L&#8217;&eacute;vidence nous avait saut&eacute; aux yeux. Tout &eacute;tait limpide comme de l&#8217;eau de source. Fallait-il que nous soyons sots et ignorants pour n&#8217;avoir pas compris plut&ocirc;t<span class="fine">&nbsp;</span>? Ce code &eacute;changeait tout simplement les valeurs des deux variables pass&eacute;es en param&egrave;tres, sans utiliser de fonction interm&eacute;diaire.</p>
<p>&laquo;&nbsp;&nbsp;Sans commentaires, un code est incompr&eacute;hensible. Dor&eacute;navant, vous ajouterez un commentaire devant chaque fonction, pour indiquer son action, ses param&egrave;tres, et son retour. Si vous ne vous conformez pas &agrave; cette r&egrave;gle, inutile de vous pr&eacute;senter &agrave; l&#8217;examen&nbsp;&nbsp;&raquo;.</p>
<p>Une fois cette docte sentence prononc&eacute;e, le v&eacute;n&eacute;rable enseignant tourna les talons, et sorti sous nos applausissements d&eacute;cha&icirc;n&eacute;s. En fait, seuls ma pudeur naturelle et les traces de vieux chewing-gums &eacute;cras&eacute;s par terre me retinrent de me jeter &agrave; ses pieds pour le supplier de me b&eacute;nir.</p>
<p>&Ccedil;a-y-&eacute;tait<span class="fine">&nbsp;</span>!!! Nous jouyions dans la cour des grands. Nous n&#8217;&eacute;tions plus de pauvres demeur&eacute;s, <em>nous savions que chaque fonction doit &ecirc;tre pr&eacute;c&eacute;d&eacute;e d&#8217;un long commentaire</em><span class="fine">&nbsp;</span>! Nous p&ucirc;mes alors nous rendre sur les forums de d&eacute;veloppez.com, et &eacute;taler ouvertement notre science en m&eacute;prisant les h&eacute;r&eacute;tiques qui <em>ne commentaient m&ecirc;me pas leurs fonctions</em> (les fous)<span class="fine">&nbsp;</span>!!</p>
<h2>Depuis, beaucoup d&#8217;eau a coul&eacute; sous les ponts</h2>
<p>Depuis ce temps b&eacute;ni, quelques longues et p&eacute;nibles ann&eacute;es se sont &eacute;coul&eacute;es. Alors que je commence &agrave; accumuler de l&#8217;exp&eacute;rience professionnelle (pas beaucoup, mais un peu quand m&ecirc;me), ma na&iuml;ve insouciance d&#8217;alors s&#8217;efface peu &agrave; peu, &eacute;rod&eacute;e par les nombreuses occasions que j&#8217;ai d&#8217;observer le code des autres d&#8217;un regard un peu critique.</p>
<p>Tel l&#8217;enfant qui d&eacute;couvre que son p&egrave;re n&#8217;est pas tout puissant, il me fallut beaucoup de courage pour affronter la d&eacute;tresse qui fut mienne lorsque je fit cette terrible d&eacute;couverte&nbsp;: mon ador&eacute;, mon honor&eacute;, mon v&eacute;n&eacute;rable et v&eacute;n&eacute;r&eacute; ma&icirc;tre avait tort. Car je dus me rendre &agrave; l&#8217;&eacute;vidence&nbsp;: <strong>les commentaires, c&#8217;est mieux quand y-en a pas<span class="fine">&nbsp;</span>!</strong></p>
<p style="text-align: right"><em>La suite au prochain &eacute;pisode&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/bien-developper/89-les-commentaires-cest-mieux-quand-y-en-a-pas/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

