<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>tyPouypOblOg : Tag objet, everything about objet</title>
    <link>http://www.typouype.org/tag/objet.rss</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Libre, Ruby, Objet, OpenBSD, Programmation</description>
    <item>
      <title>Les design patterns en ruby</title>
      <description>&lt;p&gt;C&amp;#8217;est le titre de la traduction du livre &lt;a href="http://www.amazon.fr/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/ref=sr_1_2?ie=UTF8&amp;#38;s=english-books&amp;#38;qid=1215551725&amp;#38;sr=8-2"&gt;Design pattern in Ruby&lt;/a&gt; . J&amp;#8217;en avais d&#233;j&#224; parl&#233;: &lt;a href="http://www.typouype.org/articles/2008/01/13/ruby-design-pattern"&gt;Ruby Design Pattern&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;J&amp;#8217;attendait de finir &lt;a href="http://www.amazon.fr/s/ref=nb_ss_eb?__mk_fr_FR=%C5M%C5Z%D5%D1&amp;#38;url=search-alias%3Denglish-books&amp;#38;field-keywords=l%27art+du+beau+code&amp;#38;x=0&amp;#38;y=0"&gt;L&amp;#8217;art du beau code&lt;/a&gt; un pav&#233; magnifique, riche en information, pour le commander en Anglais, mais voil&#224;, je n&amp;#8217;aurais finalement pas &#224; faire travailler mon cerveau dans la langue de Shakespear, un trio magique, bien connu des raillers surtout, j&amp;#8217;ai nom&#233;: Laurent Julliard, Mikhail Kachakhidze et Richard Piacentini ce sont occup&#233; de la traduction !&lt;/p&gt;


	&lt;p&gt;Et bien messieurs, merci bien ! Je pr&#233;-commande la version fran&#231;aise qui devrait &#234;tre dispo d&amp;#8217;ici la fin du mois de juillet, &lt;span class="caps"&gt;ROYAL&lt;/span&gt; !&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.amazon.fr/design-patterns-en-ruby/dp/2744022691/ref=sr_1_1?ie=UTF8&amp;#38;s=books&amp;#38;qid=1215552170&amp;#38;sr=1-1"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51vOlmC%2BWTL._SL500_AA240_.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Les passionn&#233; de la &lt;a href="http://fr.wikipedia.org/wiki/Programmation_objet"&gt;Programmation Orient&#233;e Objet&lt;/a&gt; et/ou de &lt;a href="http://www.ruby-lang.org"&gt;Ruby&lt;/a&gt; seront combl&#233;.&lt;/p&gt;</description>
      <pubDate>Tue, 08 Jul 2008 23:14:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:2a9f7d31-95e3-4ac5-a0da-9e898ce82a3b</guid>
      <comments>http://www.typouype.org/2008/07/08/livre-les-design-patterns-en-ruby#comments</comments>
      <category>Ruby</category>
      <category>Objet</category>
      <category>designPattern</category>
      <category>Programmation</category>
      <link>http://www.typouype.org/2008/07/08/livre-les-design-patterns-en-ruby</link>
    </item>
    <item>
      <title>XP France</title>
      <description>&lt;p&gt;
XP, eXtreme Programming (oui oui , on vas quand m&#234;me pas parler du syst&#232;me d&amp;#8217;exploitation &#224; base de fen&#234;tre ici ! Vous croyez quoi :) ). Pour ceux qui ne connaissent pas, c&amp;#8217;est une m&#233;thode de travail. Dans mon ancienne boite il parait qu&amp;#8217;on faisait de l&amp;#8217;XP. Mais quelque personnes (dont moi) voyais bien que &#231;a ne ressemblais pas &#224; de l&amp;#8217;XP comme on doit la faire, du coup c&amp;#8217;&#233;tais rebaptis&#233; Ultima Programming :p
&lt;/p&gt;
&lt;p&gt;
Pour revenir sur l&amp;#8217;eXtreme Programming, la vrai. C&amp;#8217;est donc une m&#233;thode de d&#233;veloppement bas&#233; sur quelque principe de base, simple, qui semble une &#233;vidence. Je vais vous parler des points dont je me souviens, je ne suis pas un expert, et j&amp;#8217;ai jamais eu l&amp;#8217;occasion de pratiquer cette m&#233;thode au sein d&amp;#8217;une &#233;quipe, d&amp;#8217;un projet, pourtant c&amp;#8217;est pas l&amp;#8217;envie qui me manque :p.
&lt;/p&gt;
&lt;h5&gt;Test unitaire&lt;/h5&gt;
&lt;p&gt;
C&amp;#8217;est une des bases importantes de l&amp;#8217;XP. Dans le livre qui ma permis d&amp;#8217;en apprendre plus sur cette m&#233;thode, c&amp;#8217;&#233;tais trait&#233; comme le pilier de l&amp;#8217;XP. Les &lt;a href="http://fr.wikipedia.org/wiki/Test_unitaire"&gt;tests unitaires [wikipedia]&lt;/a&gt;  sont une s&#233;rie de petite v&#233;rification. Pour faire simple, et par l&amp;#8217;exemple imaginons un objet &lt;em&gt;HexaColor&lt;/em&gt; qui a une m&#233;thode &lt;em&gt;getColor(color)&lt;/em&gt;. Une s&#233;rie de test unitaire de cet objet pourrais ressembler &#224; :
&lt;pre&gt;
assert(Color.getColor("blue"), "#0000ff")
assert(Color.getColor("white"), "#ffffff")
&lt;/pre&gt;
C&amp;#8217;est simple non ? Les tests unitaires permette de bien pr&#233;ciser ce que l&amp;#8217;on attend d&amp;#8217;une m&#233;thode, d&amp;#8217;un objet. Le d&#233;veloppeur de l&amp;#8217;objet les fournis, cela remplace bien souvent les sp&#233;cifications fonctionnelle car on peut, en lisant les test unitaires comprendre ce que fait chaque m&#233;thode, chaque objet. De plus, en rejouant les test &#224; chaque modification dans le code, on v&#233;rifie qu&amp;#8217;il n&amp;#8217;y a aucun effet de bord et/ou aucune r&#233;gression dans le projet. 
&lt;/p&gt;
&lt;p&gt;Une chose simple que je ne n&amp;#8217;ai encore jamais vu appliquer&amp;#8230; &lt;/p&gt;
&lt;h5&gt;Documentation&lt;/h5&gt;
&lt;p&gt;
JE l&amp;#8217;ai effleur&#233; dans le bloc test unitaire, en XP il n&amp;#8217;y a pas ou peu de documentation. Les tests unitaires servent de documentation fonctionnel, et la documentation technique ne sert &#224; rien. Le code est sens&#233; &#234;tre simple, clair, limpide et donc se suffire &#224; lui m&#234;me. &lt;/p&gt;
&lt;p&gt;A la limite, c&amp;#8217;est ici un point discutable pour moi. Le probl&#232;me viens du fait que nous ne sommes pas tous &#233;gaux en programmation, et chacun applique sont style. On dit bien &amp;#8220;&#233;crire du code&amp;#8221;. C&amp;#8217;est donc comme pour toute les &#233;criture, chacun &#224; &#231;a fa&#231;on de formuler. Maintenant, dans l&amp;#8217;XP il y a un point qui peut permettre de palier &#224; ce probl&#232;me.
&lt;/p&gt;
&lt;h5&gt;Coder en bin&#244;me&lt;/h5&gt;
&lt;p&gt;
Et oui, c&amp;#8217;est surprenant, pour beaucoup de manager c&amp;#8217;est une perte de temps (comme les tests unitaires), mais dans l&amp;#8217;XP c&amp;#8217;est un des point cl&#233; (d&amp;#8217;apr&#232;s moi): Tout code s&amp;#8217;effectue en bin&#244;me. Plusieurs 
avantages sont apport&#233;s par ce point. 
&lt;ul&gt;
&lt;li&gt;La communication, le partage.&lt;br/&gt;
Point ultra important. On peut dans ce cas partager &#231;a fa&#231;on de voir les chose et la confront&#233; &#224; une autre. Ca permet de faire &#233;voluer les fa&#231;on de faire, et permet de faire &#233;voluer plus vite ceux qui d&#233;bute en les mettant en contact avec des codeurs plus exp&#233;riment&#233;, mais &#231;a permet aussi aux plus exp&#233;riment&#233; de continuer &#224; ce remettre en cause, de ne pas rester assis sur des acquis (c&amp;#8217;est jamais bon &#231;a).
&lt;/li&gt;
&lt;li&gt;Le contr&#244;le, l&amp;#8217;analyse&lt;br/&gt;
Il n&amp;#8217;y a quand m&#234;me qu&amp;#8217;un seul clavier sur le poste de d&#233;veloppement. Donc pendant qu&amp;#8217;un &#233;crit l&amp;#8217;autre regarde, r&#233;fl&#233;chi, affine l&amp;#8217;algorithme mis en place. On peut corriger les erreurs tout de suite. On le sais: 4 yeux valent mieux que 2 (surtout que y&amp;#8217;en a 2 qui sont plus ou moins concentr&#233; sur la frappe, m&#234;me si bon, c&amp;#8217;est discutable :p ). Si un des deux ne sais pas comment faire une partie, l&amp;#8217;autre peut prendre la rel&#232;ve.
&lt;/li&gt;
&lt;li&gt;L&amp;#8217;ennui&lt;br/&gt;
C&amp;#8217;est bon pour le moral aussi de travailler &#224; deux. Surtout que dans l&amp;#8217;histoire, on doit changer de bin&#244;me toute les demi journ&#233;e&amp;#8230; Oui oui, un bin&#244;me n&amp;#8217;est valable qu&amp;#8217;un demi journ&#233;e :). Ca bouge, &#231;a casse la routine.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;h5&gt;It&#233;rations courtes&lt;/h5&gt;
&lt;p&gt;
Comme les bin&#244;mes doivent changer toute les demi journ&#233;es (enfin c&amp;#8217;est le syst&#232;me optimal d&amp;#8217;apr&#232;s ce que j&amp;#8217;ai retenu). Il faut se tenir &#224; des &amp;#8220;taches&amp;#8221;, des &amp;#8220;it&#233;rations&amp;#8221; courtes. Une m&#233;thode, un besoin doit &#234;tre construit en une demi journ&#233;e, sinon ce n&amp;#8217;est pas la peine de le faire, il faut le d&#233;couper en plusieurs petits morceaux. Le but est de tester toute les demi journ&#233;e l&amp;#8217;int&#233;gration de nouveaut&#233;, de voir le projet avanc&#233; toute les demi journ&#233;e. Avec l&amp;#8217;XP on ne doit pas perdre de temps.
&lt;/p&gt;
&lt;h5&gt;R&#233;unions&lt;/h5&gt;
&lt;p&gt;
Le contact avec le client ou un de ces repr&#233;sentant est permanant. Il voit le projet avanc&#233; rapidement par petit morceau et peut revenir dessus si un point flou commence &#224; s&amp;#8217;&#233;claircir au fur et &#224; mesure que le code avance. Par contre fini les r&#233;unions qui n&amp;#8217;aboutissent &#224; rien. L&amp;#8217;auteur du bouquin parle m&#234;me d&amp;#8217;un minuteur de cuisson. Il le mettais &#224; 15 minutes, une fois sonner, fini la r&#233;union, tant pis si tout les points n&amp;#8217;ont pas &#233;t&#233; abord&#233;. Une r&#233;union qui dur embrouille les esprits, c&amp;#8217;est contre productif.
&lt;/p&gt;
&lt;h5&gt;Code jetable&lt;/h5&gt;
&lt;p&gt;
Il ne faut pas h&#233;siter &#224; jeter le code fait la veille, le code qui finalement ne correspond pas &#224; ce que le client souhaite. Jeter un code qui a pris une demi journ&#233;e &#224; faire est toujours plus facile que jeter un projet r&#233;alis&#233; dans l&amp;#8217;ombre pendant 6 mois. Je suis gentil sur les 6 mois, j&amp;#8217;ai vu des projet de 2 ou 3 ann&#233;es mis aux oubliettes sans m&#234;me avoir tourn&#233; en production&amp;#8230; Un beau g&#226;chis de ressources et d&amp;#8217;argent.
&lt;/p&gt;
&lt;h5&gt;Conclusion&lt;/h5&gt;
&lt;p&gt;
C&amp;#8217;est une bonne m&#233;thode sur le papier, apr&#232;s dans les fait, la difficult&#233; c&amp;#8217;est de l&amp;#8221;appliquer. Comme pour la s&#233;curit&#233; informatique, le probl&#232;me vient de l&amp;#8217;humain. Il est apparemment tr&#232;s dur d&amp;#8217;avoir des responsables, des d&#233;veloppeurs pr&#232;s et capable de passer &#224; l&amp;#8217;action.
&lt;/p&gt;
&lt;p&gt;
Tout &#231;a pour vous mettre un petit lien (oui je nettoie toujours mes favoris :p). Il existe une association fran&#231;aise de gens qui d&#233;veloppe ou s&amp;#8217;int&#233;resse &#224; cette m&#233;thode de travail &lt;a href="http://xp-france.net/"&gt;xp-france&lt;/a&gt;. Je n&amp;#8217;ai pris contact avec eux, je ne suis pas inscrit. En gros je ne les connais pas vraiment, mais je crois qu&amp;#8217;il faut que je le fasse. C&amp;#8217;est dans ma monstrueuse TODOListe :).  Le bouquin dont je parle doit &#234;tre &lt;a href="http://www.amazon.fr/Extreme-Programming-r%C3%A9f%C3%A9rence-Kent-Beck/dp/2744014338/sr=8-2/qid=1166002858/ref=pd_ka_2/171-6036956-2893829?ie=UTF8&amp;#38;s=books"&gt;
Extreme Programming : La r&#233;f&#233;rence [Amazon]&lt;/a&gt; par Kent Beck.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Erf ! encore un billet &#233;norme, je voulais arr&#234;ter de faire &#231;a. Pfff. Tout &#231;a pour un lien en plus :p&lt;/em&gt;
&lt;/p&gt;</description>
      <pubDate>Wed, 13 Dec 2006 09:57:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:89b9146c-1d36-4459-bf9b-2e3be8e3ebd2</guid>
      <comments>http://www.typouype.org/2006/12/13/xp-france#comments</comments>
      <category>Code</category>
      <category>methode</category>
      <category>Objet</category>
      <trackback:ping>http://www.typouype.org/trackbacks?article_id=xp-france&amp;day=13&amp;month=12&amp;year=2006</trackback:ping>
      <link>http://www.typouype.org/2006/12/13/xp-france</link>
    </item>
  </channel>
</rss>
