<?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>Do as i say, not as i do &#187; métaphore</title>
	<atom:link href="http://www.do-as-i-say.com/notes/tag/metaphore/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.do-as-i-say.com/notes</link>
	<description>Car dire ça n&#039;est pas toujours faire, mais ça ne coûte rien</description>
	<lastBuildDate>Mon, 26 Apr 2010 11:40:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>La beauty de la poetry dans Symfony</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:24:05 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[langage]]></category>
		<category><![CDATA[métaphore]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=947</guid>
		<description><![CDATA[Dans le développement web comme dans la programmation en général, on utilise  beaucoup de termes empruntés à l&#8217;anglais, dans des versions plus ou moins traduites ou transposées. Comme dans tout langage technique où on utilise, à plus ou moins bon escient, des termes d&#8217;origine étrangère, ça donne lieu dans les échanges oraux ou écrits à [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-971" style="border: 1px solid black;" title="La poésie, cbeautiful" src="http://www.do-as-i-say.com/notes/wp-content/uploads/poetry.jpg" alt="La poésie, cbeautiful" width="128" height="128" />Dans le développement web comme dans la programmation en général, on utilise  beaucoup de termes empruntés à l&#8217;anglais, dans des versions plus ou moins traduites ou transposées. Comme dans tout langage technique où on utilise, à plus ou moins bon escient, des termes d&#8217;origine étrangère, ça donne lieu dans les échanges oraux ou écrits à des phrases mélangeant allègrement des mots d&#8217;origines diverses, dans un melting-pot qui souvent frise le ridicule, mais parfois recèle une bonne dose de poésie (oui, bon, moi ça me parle, cette poésie, je sais bien que ça n&#8217;est pas forcément le cas de tout le monde, mais c&#8217;est comme ça).<br />
<span id="more-947"></span></p>
<p>Je n&#8217;aborderai pas ici le débat, en partie stérile, consistant à se demander s&#8217;il faut traduire ou non tous ces termes et/ou créer des équivalents en français quand il n&#8217;y a pas de mot existant. Une langue vivante est, comme son nom l&#8217;indique, <em>vivante</em> (eh ouaip, ne me remerciez pas), comme tout organisme elle mue, agrège des éléments, transforme de la matière en d&#8217;autres choses, et c&#8217;est très bien (mieux : c&#8217;est vital — une langue que ne bouge plus est, comme on le dit fort bien, une <em>langue morte</em>).</p>
<p>Non, je vais juste ici évoquer quelques uns des mots qu&#8217;on pratique beaucoup en <a href="http://www.sensiolabs.com" target="_blank">environnement professionnel</a>, ceux qui ont pour mon oreille un peu bizarre des résonances particulièrement drôles ou poétiques. Ça me donnera au passage l&#8217;occasion de parler un peu d&#8217;un framework que j&#8217;aime bien (voir <a href="http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/" target="_blank">ici</a>, <a href="http://www.do-as-i-say.com/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/" target="_blank">ici</a>, ou <a href="http://www.do-as-i-say.com/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/" target="_blank">ici</a>). On pourrait appeler cette liste &laquo;&nbsp;les 10 termes à connaître pour <em>speaker</em> fluemment le Symfony <em>in </em>le texte&nbsp;&raquo;.</p>
<ul>
<li><strong>autoload </strong>: ne me demandez pas pourquoi celui-là me plait, il y a des chances que ça ait à voir avec Goldorak (autolargue, quoi).  En ce qui nous concerne, l&#8217;autoload est une fonctionnalité un petit peu magique qui dispense le développeur d&#8217;inclure explicitement chacun des fichiers définissant les classes dont il a besoin, le framework (chez nous, c&#8217;est <a href="http://www.symfony-project.org">Symfony</a>, des fois que je ne l&#8217;aurais pas dit) se chargeant à chaque nouvelle instanciation d&#8217;objet de fouiller les répertoires qui vont bien à la recherche du fichier nécessaire et de l&#8217;inclure dans votre dos sans que vous ayiez à vous en soucier.</li>
<li><strong>bootstraping </strong>: souvent utilisé dans un <a href="http://www.do-as-i-say.com/notes/2009/09/les-10-termes-a-connaitre-pour-etre-un-bon-chef-de-projet/" target="_blank">discours de vérité</a> pour en jeter un max, le <em>bootstraping</em> est littéralement laçage de chaussure (ou serrage de sangle de botte&#8230;) Les <em>bootstrap</em>s sont concrètement des anneaux cousus sur le rebord des bottes, qu&#8217;on utilise pour s&#8217;aider à les chausser. En anglais courant, le verbe <em>bootstrap</em> signifie d&#8217;ailleurs &laquo;&nbsp;se débrouiller tout seul&nbsp;&raquo;. Pour la fine bouche, signalons que dans la littérature anglaise le verbe est également une référence aux aventures du baron de Münchhausen qui, embourbé dans un marécage, s&#8217;en sort en se tirant lui-même par ses bottes pour se propulser dans les airs&#8230;<br />
&laquo;&nbsp;Bootstraper&nbsp;&raquo;, puisqu&#8217;on l&#8217;utilise bien entendu comme verbe francisé, consiste à démarrer le boulot en en prémâchant l&#8217;essentiel, pour obtenir rapidement une base pouvant servir au développement d&#8217;une application plus puissante par la suite.</li>
<li><strong>cécé </strong>: ou &laquo;&nbsp;cici&nbsp;&raquo;, si on le fait à l&#8217;anglaise ; abbréviation et alias de la commande Symfony clear-cache (puis plus récemment cache:clear) utilisée pour <em>clearer</em> le cache (le vider, quoi). On doit entendre chez Sensiolabs environ 167 fois par jour &laquo;&nbsp;t&#8217;as fait un cécé ?&nbsp;&raquo;.</li>
<li><strong>crud </strong>: à prononcer &laquo;&nbsp;crude&nbsp;&raquo;, ou &laquo;&nbsp;creude&nbsp;&raquo;, bien sûr. Acronyme de Create-Retrieve-Update-Delete, qui sont les quatre fonctions de base d&#8217;une interface simple d&#8217;administration de données.</li>
<li><strong>fixtures : </strong>toujours un peu difficile à dire pour les français, les <em>fikstcheurzes</em> sont des données servant à tester et/ou initialiser une application, stockées dans un format simple à éditer et à utiliser pour des injections automatiques (voir <em>populate</em> plus bas).</li>
<li><strong>helper </strong>: j&#8217;aime bien l&#8217;idée d&#8217; &laquo;&nbsp;aideurs&nbsp;&raquo; (j&#8217;imagine que l&#8217;administration nous ferait dire &laquo;&nbsp;aidants&nbsp;&raquo;) qui avec leur petits bras muskés font des trucs pour toi. Un <em>helper</em> est en effet une petite fonction destinée en général à retourner du code HTML répétitif, construit avec des paramètres ou propriétés d&#8217;un objet qu&#8217;on lui passe.</li>
<li><strong>hydrate : </strong>liquide et poétique image qui touche au sublime : &laquo;&nbsp;hydrater un objet&nbsp;&raquo; consiste à lui attribuer des valeurs qu&#8217;on a récupérées en vrac par ailleurs (pour faire très simple), cette attribution devant être &laquo;&nbsp;intelligente&nbsp;&raquo;, c&#8217;est-à-dire qu&#8217;elle doit faire correspondre à la bonne propriété la bonne valeur. On peut &laquo;&nbsp;hydrater à la main&nbsp;&raquo;, ce qui n&#8217;a rien à voir avec une crème de jour, ou recourir à des fonctions qui <a href="http://www.symfony-project.org/cookbook/1_2/en/retrieving_data_with_doctrine#chapter_f6fc97d827760d5157133eaf9798ddaf_array_hydration" target="_blank">mâchent le travail</a>.</li>
<li><strong>populate </strong>: autre métaphore que j&#8217;affectionne particulièrement, qu&#8217;on emploie un peu indifféremment en anglais ou dans sa version française ( &laquo;&nbsp;peupler&nbsp;&raquo;, ou le néologique &laquo;&nbsp;populer&nbsp;&raquo;). <em>Peupler </em>une base de données consiste à lui injecter des données de tests ou des données initiales nécessaires à l&#8217;application (utilisateurs, contenus de départ&#8230;) ; pour faciliter la vie des développeurs, il existe dans Symfony des façons d&#8217;automatiser cette action pour pouvoir la répéter en deux coups de cuiller à pot et insérer des <em>fixtures</em> en une seule commande.<br />
Il existe aussi la variante &laquo;&nbsp;<strong>repeupler</strong>&laquo;&nbsp;, qui désigne le fait de réafficher les données saisies par l&#8217;utilisateur dans un formulaire s&#8217;il contient des erreurs ou doit être complété. On a tous un jour expérimenté la douleur de l&#8217;absence de repopulation, quand on a passé du temps à remplir un formulaire, qu&#8217;on valide, qu&#8217;il est refusé pour une quelconque raison, mais est réaffiché tout vide, et qu&#8217;on doit tout ressaisir&#8230; Vous pourrez maintenant hurler &laquo;&nbsp;IL N&#8217;A PAS ÉTÉ REPEUPLÉ, BORDEL DE M&#8230; !&nbsp;&raquo;</li>
<li><strong>routing </strong>: celui-là aussi on le traduit peu (le &laquo;&nbsp;routage&nbsp;&raquo; gardera quoiqu&#8217;on en dise toujours une connotation de service postal). Le routing est le mécanisme qui réécrit et/ou traduit les urls (selon le sens où on le regarde) pour permettre de paramétrer des adresses, comme on dit, plus sympathiques pour les utilisateurs et les moteurs de recherche (respectivement : <em>user-friendly</em>, et <em>search-engine-friendly</em> ; ouéééé, copaaaing !) Il est lié à ce qu&#8217;on appelle la réécriture d&#8217;url, qu&#8217;on dit très souvent à l&#8217;anglaise aussi : l&#8217;<em>iouharelle riraïtingue</em>.</li>
<li><strong>sandbox </strong>: littéralement &laquo;&nbsp;bac à sable&nbsp;&raquo;, désigne une mode autonome de distribution d&#8217;une application, pour faciliter son installation et permettre des tests où les risques d&#8217;impact pour le reste du serveur sont limités sinon nuls. En d&#8217;autres termes : pour faire joujou dans son bac à sable où on peut tout crader sans gêner personne.</li>
<li><strong>scaffolding </strong>: image très sympathique, qu&#8217;on pourrait traduire par &laquo;&nbsp;échaufadage&nbsp;&raquo;. Assez proche du <em>bootstraping</em>, le <em>scaffolding</em> est plus spécifiquement lié à la façon d&#8217;exploiter la structure d&#8217;une base de données. Il se base sur une description formalisée de cette structure (dans <a href="http://www.symfony-project.org/book/1_2/08-Inside-the-Model-Layer#chapter_08_sub_beyond_the_schema_yml_the_schema_xml" target="_blank">Symfony, par exemple</a>, dans un fichier <em>schema.yml</em>) pour générer automatiquement une interface d&#8217;administration <em>crud </em>(voir plus haut). C&#8217;est ce que fait le bien nommé <em>admin generator</em>,  affectueusement appelé <em>admin gen </em>(prononcez &laquo;&nbsp;admine jène&nbsp;&raquo;), dans Symfony. En quoi on peut dire : &laquo;&nbsp;l&#8217;<em>admin gen</em>, ça consiste à <em>bootstraper </em>ton <em>backoffice </em>en faisant du <em>scaffolding</em> avec des interfaces <em>crud&nbsp;&raquo;</em>. <em><br />
</em>Cpas <em>beautiful</em>, ça ?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Le carreleur et le développeur</title>
		<link>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 05:45:21 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[analogie]]></category>
		<category><![CDATA[application web]]></category>
		<category><![CDATA[BTP]]></category>
		<category><![CDATA[carrelage]]></category>
		<category><![CDATA[comparaison]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[idée régulatrice]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[métaphore]]></category>
		<category><![CDATA[MOA]]></category>
		<category><![CDATA[MOE]]></category>
		<category><![CDATA[Platon]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=65</guid>
		<description><![CDATA[Pour des raisons dont le fin mot m&#8217;échappe en partie, mais dont les causes sont vraisemblablement historiques , on a recourt pour ce qui est informatique et systèmes d&#8217;information, à un champ lexical lourdement emprunté à la construction et au BTP : chantier, architecture, maîtrise d&#8217;ouvrage, maîtrise d&#8217;œuvre&#8230;

Divers livres et endroits du web m&#8217;ont indiqué [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-87" style="border: 1px solid black;" title="Encore des spécs mal ficelées" src="http://www.do-as-i-say.com/notes/wp-content/uploads/immeuble-150x150.png" alt="Encore des spécs mal ficelées" width="128" height="126" />Pour des raisons dont le fin mot m&#8217;échappe en partie, mais dont les causes sont vraisemblablement historiques , on a recourt pour ce qui est informatique et systèmes d&#8217;information, à un champ lexical lourdement emprunté à la construction et au BTP : chantier, architecture, maîtrise d&#8217;ouvrage, maîtrise d&#8217;œuvre&#8230;</p>
<p><span id="more-65"></span></p>
<p>Divers livres et endroits du web m&#8217;ont indiqué que cette tradition était typiquement française , je ne sais pas s&#8217;il y a de quoi s&#8217;en réjouir. Sans parler du fait que la distinction MOA/MOE, notamment, impose une séparation assez artificielle entre le métier (client) et la technique (prestataire), qui finit par opposer politiquement les savoir-faire plutôt que de viser à les faire se rencontrer, sans parler non plus du fait que si dans l&#8217;informatique ou les applications web tout se passait comme lors de la construction d&#8217;un bâtiment, on perdrait sans doute moins de cheveux , sans parler de tout ça donc, même si maintenant c&#8217;est un peu fait, je voudrais <span style="text-decoration: line-through;">élever</span> rediriger le débat (ben tiens) jusqu&#8217;à la question de l&#8217;opportunité et de la pertinence de certaines métaphores fréquemment utilisées dans notre beau métier (les applications web).</p>
<p>Sans grande surprise, quand quelqu&#8217;un dans ledit métier, client ou prestataire, se lance dans une métaphore filée , il puise dans le champ lexical du bâtiment. Déduction (maintenant possible) : il est français ; bon, en général, on le sait déjà.<br />
De manière un peu plus surprenante, quand ça se produit, ne me demandez pas pourquoi mais neuf fois sur dix il ou elle prend l&#8217;exemple d&#8217;un carreleur. Celui qui pose le carrelage, quoi, vous savez le truc par terre, là. Pourquoi le carrelage ? <em>No sé</em> ; on demandera à Freud de se pencher sur la question. Bref.<br />
La suite de l&#8217;histoire, car il s&#8217;agit toujours d&#8217;une histoire personnelle, se résume dans les grandes lignes à :</p>
<ol>
<li>le carreleur a fait un devis précis sur le nombre de mètres carrés à couvrir, voire dans les meilleurs versions, sur le nombre carreaux</li>
<li>il l&#8217;a fait signer avec le sang et il a demandé un acompte</li>
<li>il a réalisé le travail, et toute demande supplémentaire a été facturée</li>
</ol>
<p>Cette narration édifiante (rappelez-vous l&#8217;étymologie d&#8217;<em>édifiant</em>) se termine par une conclusion en forme d&#8217;exhortation : si un carreleur peut le faire, il n&#8217;y a pas de raison qu&#8217;on ne puisse pas y arriver également, et appliquer cette façon de travailler !</p>
<p>C&#8217;est là que je dis : attention, Maurice (mettons que la personne qui a raconté son histoire s&#8217;appelle Maurice). Les raisons, s&#8217;il s&#8217;agit d&#8217;en trouver, il peut y en avoir plein. Je dirais surtout trois choses :</p>
<ol>
<li>Ça n&#8217;est pas parce qu&#8217;une histoire est imagée, avec un exemple de la vie quotidienne (comprenez : concret et qui va parler à tout le monde), moult détail et foult anecdote dont l&#8217;authenticité le dispute à la théâtralité, qu&#8217;elle impose nécessairement comme une conséquence irrévocable et pour ainsi dire congénitale sa vérité, et, encore moins, son caractère de preuve.<br />
Pour le dire avec moins de mots :<strong> fezez gaffe aux images !</strong> Rien ne va de soi, et surtout pas le choix d&#8217;une analogie (le mot est lâché ). D&#8217;une manière générale, l&#8217;image a tendance à endormir l&#8217;intelligence, parce qu&#8217;elle s&#8217;impose aux yeux en un seul morceau .</li>
<li>Conséquence du point précédent : quand il y a une métaphore filée, <strong>questionnez l&#8217;analogie</strong>. Nétadire ? Nétadire qu&#8217;avant de prendre pour argent comptant la conclusion de Maurice, demandez-vous si la relation qui est établie entre, dans notre cas, le fait de poser des carrelages et celui de développer une application web, est effectivement pertinente. Les analogies, c&#8217;est bien, mais on n&#8217;est pas obligé d&#8217;être d&#8217;accord avec les choses qu&#8217;elles présupposent, par exemple que carreler c&#8217;est la même chose que faire un site web.<br />
Déjà, dans la réalité, je connais peu de clients qui demandent l&#8217;équivalent de <em>&laquo;&nbsp;mettez-moi tel carrelage sur ces 12 mètres carrés&nbsp;&raquo;</em> ; au quotidien, ça donne plutôt quelque chose comme <em>&laquo;&nbsp;j&#8217;ai une pièce à refaire, je ne sais pas trop sa surface, mais il faut que ça soit moins salissant&nbsp;&raquo;</em>, suivi après livraison de <em>&laquo;&nbsp;ah mais il allait de soi qu&#8217;il fallait aussi faire les murs, enfin&nbsp;&raquo;</em>.</li>
<li> Ensuite, et c&#8217;est surtout ça le point important, faire une appli web, ça n&#8217;est pas poser du carrelage ; s&#8217;il fallait tenter d&#8217;induire quelque analogie dans le domaine du BTP, ça nous donnerait plutôt :<em> &laquo;&nbsp;en général, faire une appli web, c&#8217;est comme  construire une maison avec un nombre de pièces qui évolue en fonction des actions des habitants, dont la porte les reconnait et leur propose une salle à manger différente selon l&#8217;heure de la journée, avec des escaliers dont le design doit pouvoir être revu toutes les trois semaines sans empêcher les gens de les utiliser, un toit qui protège des intempéries existantes mais aussi non connues à ce jour, une pièce qui fait les déclarations de revenus, déclenche automatiquement le paiement des factures, engage ponctuellement du personnel de ménage&#8230; Tout ça avec une maison de backup qui chaque nuit sauvegarde tout ce qui a été dit ou pensé par les habitants. Ah oui, c&#8217;est pour dans six semaines.&nbsp;&raquo;</em></li>
</ol>
<p>Évidemment, tout de suite, l&#8217;histoire de carrelage tombe un peu à plat.<br />
Mais, pour finir sur une note optimiste, disons qu&#8217;elle n&#8217;est pas complètement inutile, spécialement si on la considère pour ce qu&#8217;elle peut être : une <strong>idée régulatrice</strong>, autrement dit quelque chose qu&#8217;il faut viser.<br />
L&#8217;intérêt éventuel de ce que nous a raconté Maurice, c&#8217;est de dire : les enfants, pour éviter les débordements, il faut toujours garder à l&#8217;esprit que le projet doit tendre le plus possible vers le carrelage. Ça ne sera jamais aussi &laquo;&nbsp;simple&nbsp;&raquo;, mais il faut <em>viser </em>la simplification, l&#8217;explicitation des besoins, et les cadrer pour qu&#8217;ils soient <em>réalistes </em>et <em>raisonnables</em>. Personne ne demanderait à un carreleur de poser trois niveaux de carrelage, et en or massif, et puis aussi de refaire les peintures au passage (pour le même prix, il va de soi). Ben voilà. Pour nous, ça doit être pareil.</p>
<p>Moralité : la prochaine fois que vous entendez parler de carrelage, soyez attentifs à ce qu&#8217;on essaie de vous refourguer comme théorie, il y a de fortes chances pour que ça ne soit pas vraiment approprié.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
