<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires pour Blog Excilys</title>
	<atom:link href="http://blog.excilys.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.excilys.com</link>
	<description>Langages, Architectures &#38; Méthodologies</description>
	<lastBuildDate>Fri, 16 Jul 2010 09:25:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Commentaires sur Oubliez les redéploiements grâce à JRebel par Tweets that mention Blog Excilys » Oubliez les redéploiements grâce à JRebel -- Topsy.com</title>
		<link>http://blog.excilys.com/2010/07/15/oubliez-les-redeploiements-grace-a-jrebel/comment-page-1/#comment-1531</link>
		<dc:creator>Tweets that mention Blog Excilys » Oubliez les redéploiements grâce à JRebel -- Topsy.com</dc:creator>
		<pubDate>Fri, 16 Jul 2010 09:25:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2430#comment-1531</guid>
		<description>[...] This post was mentioned on Twitter by JavaRebel, Aurélien Thieriot. Aurélien Thieriot said: Article sur JRebel http://is.gd/du1rH [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by JavaRebel, Aurélien Thieriot. Aurélien Thieriot said: Article sur JRebel <a href="http://is.gd/du1rH" rel="nofollow">http://is.gd/du1rH</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Oubliez les redéploiements grâce à JRebel par Bastien HUBERT</title>
		<link>http://blog.excilys.com/2010/07/15/oubliez-les-redeploiements-grace-a-jrebel/comment-page-1/#comment-1530</link>
		<dc:creator>Bastien HUBERT</dc:creator>
		<pubDate>Fri, 16 Jul 2010 09:19:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2430#comment-1530</guid>
		<description>Grand fan de JRebel (je l&#039;ai fait installer partout chez mon client), je complèterai juste en signalant l&#039;existence d&#039;un plugin maven permettant d&#039;autogenerer les rebel.xml. 
Pratique quand vos collègues n&#039;ont pas envie de comprendre comment ca marche, mais en ont quand même marre de redéployer toutes les 30 secondes ;)

Petit exemple, avec en plus du multi-projet

						
						  org.zeroturnaround
						  javarebel-maven-plugin
						
						  
						    
						      generate-rebel-xml
						      process-resources
						      			
						        generate
						      
						    
						  
						  
						  
						  	
							  	
							       
							          ../core/target/classes
							          
							        
							         
							          ../editique/target/classes
							          
							        
							      
						    
						  
						  
						

En tout cas JRebel procure un véritable gain de temps au quotidien, seul petit regret la non-gestion des fichiers Webflow. 
Officiellement car Webflow est censé le faire tout seul en mode developer, mais d&#039;un avis purement personnel, l&#039;auto redéploiement de webflow n&#039;a vraiment rien à voir avec la qualité de celle de JRebel.</description>
		<content:encoded><![CDATA[<p>Grand fan de JRebel (je l&#8217;ai fait installer partout chez mon client), je complèterai juste en signalant l&#8217;existence d&#8217;un plugin maven permettant d&#8217;autogenerer les rebel.xml.<br />
Pratique quand vos collègues n&#8217;ont pas envie de comprendre comment ca marche, mais en ont quand même marre de redéployer toutes les 30 secondes <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Petit exemple, avec en plus du multi-projet</p>
<p>						  org.zeroturnaround<br />
						  javarebel-maven-plugin</p>
<p>						      generate-rebel-xml<br />
						      process-resources</p>
<p>						        generate</p>
<p>							          ../core/target/classes</p>
<p>							          ../editique/target/classes</p>
<p>En tout cas JRebel procure un véritable gain de temps au quotidien, seul petit regret la non-gestion des fichiers Webflow.<br />
Officiellement car Webflow est censé le faire tout seul en mode developer, mais d&#8217;un avis purement personnel, l&#8217;auto redéploiement de webflow n&#8217;a vraiment rien à voir avec la qualité de celle de JRebel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par Bastien JANSEN</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1441</link>
		<dc:creator>Bastien JANSEN</dc:creator>
		<pubDate>Sat, 10 Jul 2010 09:56:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1441</guid>
		<description>Mouais, en râleur de service je trouve ça moyennement &quot;propre&quot; d&#039;appeler une méthode en sachant qu&#039;elle peut me jeter une exception dans la face, même si je l&#039;attrape... Mais pour le coup j&#039;admets que ça simplifie le code : on n&#039;a pas besoin de tester les deux types d&#039;extension, à savoir super-classe ou interfaces.</description>
		<content:encoded><![CDATA[<p>Mouais, en râleur de service je trouve ça moyennement &#8220;propre&#8221; d&#8217;appeler une méthode en sachant qu&#8217;elle peut me jeter une exception dans la face, même si je l&#8217;attrape&#8230; Mais pour le coup j&#8217;admets que ça simplifie le code : on n&#8217;a pas besoin de tester les deux types d&#8217;extension, à savoir super-classe ou interfaces.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par Denis VAUMORON</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1378</link>
		<dc:creator>Denis VAUMORON</dc:creator>
		<pubDate>Wed, 07 Jul 2010 19:07:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1378</guid>
		<description>Le @Case est pas mal, mais en casse-pieds de service, je note tout de même que tu aurais pu utiliser la méthode asSubclass pour ta méthode isA :

	private boolean isA(Class clazz, Class class1) {
		try {
			clazz.asSubclass(class1);
		} catch (ClassCastException cce) {
			return false;
		}
		return true;
	}</description>
		<content:encoded><![CDATA[<p>Le @Case est pas mal, mais en casse-pieds de service, je note tout de même que tu aurais pu utiliser la méthode asSubclass pour ta méthode isA :</p>
<p>	private boolean isA(Class clazz, Class class1) {<br />
		try {<br />
			clazz.asSubclass(class1);<br />
		} catch (ClassCastException cce) {<br />
			return false;<br />
		}<br />
		return true;<br />
	}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par Bastien JANSEN</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1312</link>
		<dc:creator>Bastien JANSEN</dc:creator>
		<pubDate>Fri, 02 Jul 2010 10:11:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1312</guid>
		<description>&lt;a href=&quot;#comment-1308&quot; rel=&quot;nofollow&quot;&gt;@Oaz &lt;/a&gt; 
Décidément, cet article semble déchaîner les passions dans les commentaires :-D ! Dommage que Pierre-Yves ne puisse pas répondre à cause d&#039;une vacancite aigüe...
Ton idée m&#039;a donné envie de tester la faisabilité d&#039;un @Case en Java, et bien évidemment c&#039;est possible. J&#039;ai documenté ça sur un autre blog : http://foobaz.free.fr/blog/?article7/un-switch-annote-en-java</description>
		<content:encoded><![CDATA[<p><a href="#comment-1308" rel="nofollow">@Oaz </a><br />
Décidément, cet article semble déchaîner les passions dans les commentaires <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  ! Dommage que Pierre-Yves ne puisse pas répondre à cause d&#8217;une vacancite aigüe&#8230;<br />
Ton idée m&#8217;a donné envie de tester la faisabilité d&#8217;un @Case en Java, et bien évidemment c&#8217;est possible. J&#8217;ai documenté ça sur un autre blog : <a href="http://foobaz.free.fr/blog/?article7/un-switch-annote-en-java" rel="nofollow">http://foobaz.free.fr/blog/?article7/un-switch-annote-en-java</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par Oaz</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1308</link>
		<dc:creator>Oaz</dc:creator>
		<pubDate>Thu, 01 Jul 2010 19:51:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1308</guid>
		<description>Bonjour,

Autant je comprends et approuve fortement la première partie de l&#039;article, autant je ne comprends pas l&#039;utilité du pattern strategy dans ce contexte.

Quelle différence entre doAction(new Syso()); et new Syso().doAction(); ?

Le switch permet de relier un ensemble de valeurs à un ensemble d&#039;exécutions. Si on dispose déjà de l&#039;exécution, on n&#039;est plus tellement dans le cadre d&#039;un switch.


Ce billet m&#039;a toutefois donné envie d&#039;exposer une technique que j&#039;utilise parfois en C# pour éviter la maintenance manuelle d&#039;un &quot;Map&quot; centralisé : http://agilitateur.azeau.com/post/2010/07/01/Un-switch-%C3%A9volutif-en-C
Cela se base sur le concept d&#039;attributs dans .NET
Je connais mal java mais est-ce que la gestion des &quot;case&quot; d&#039;un &quot;switch&quot; via des annotations y serait possible ? Et aurait elle un intérêt ?

Concrètement, est-ce que l&#039;on pourrait écrire quelque chose comme (syntaxe non garantie) :

@Case(&quot;syso&quot;)
public class Syso implements Action {
    public void doAction() {  System.out.println(&quot;Yeah&quot;); }
}

@Case(&quot;syserr&quot;)
public class Syserr implements Action {
    public void doAction() { System.err.println(&quot;Yahoo&quot;); }
}

et avoir un mécanisme générique qui, étant donné une string &quot;syso&quot; ou &quot;syserr&quot; exécuterait le &quot;doAction&quot; correspondant ?</description>
		<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Autant je comprends et approuve fortement la première partie de l&#8217;article, autant je ne comprends pas l&#8217;utilité du pattern strategy dans ce contexte.</p>
<p>Quelle différence entre doAction(new Syso()); et new Syso().doAction(); ?</p>
<p>Le switch permet de relier un ensemble de valeurs à un ensemble d&#8217;exécutions. Si on dispose déjà de l&#8217;exécution, on n&#8217;est plus tellement dans le cadre d&#8217;un switch.</p>
<p>Ce billet m&#8217;a toutefois donné envie d&#8217;exposer une technique que j&#8217;utilise parfois en C# pour éviter la maintenance manuelle d&#8217;un &#8220;Map&#8221; centralisé : <a href="http://agilitateur.azeau.com/post/2010/07/01/Un-switch-%C3%A9volutif-en-C" rel="nofollow">http://agilitateur.azeau.com/post/2010/07/01/Un-switch-%C3%A9volutif-en-C</a><br />
Cela se base sur le concept d&#8217;attributs dans .NET<br />
Je connais mal java mais est-ce que la gestion des &#8220;case&#8221; d&#8217;un &#8220;switch&#8221; via des annotations y serait possible ? Et aurait elle un intérêt ?</p>
<p>Concrètement, est-ce que l&#8217;on pourrait écrire quelque chose comme (syntaxe non garantie) :</p>
<p>@Case(&#8220;syso&#8221;)<br />
public class Syso implements Action {<br />
    public void doAction() {  System.out.println(&#8220;Yeah&#8221;); }<br />
}</p>
<p>@Case(&#8220;syserr&#8221;)<br />
public class Syserr implements Action {<br />
    public void doAction() { System.err.println(&#8220;Yahoo&#8221;); }<br />
}</p>
<p>et avoir un mécanisme générique qui, étant donné une string &#8220;syso&#8221; ou &#8220;syserr&#8221; exécuterait le &#8220;doAction&#8221; correspondant ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par Neko</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1298</link>
		<dc:creator>Neko</dc:creator>
		<pubDate>Thu, 01 Jul 2010 10:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1298</guid>
		<description>Salut à toi Pierre Yves (salut aux autres lecteurs)

Je ne suis absolument pas d&#039;accord avec ton article (enfin en partie).
Tout d&#039;abord, si le switch existe depuis si longtemps, c&#039;est peut être parce que c&#039;est plus qu&#039;une structure de contrôle; je veux dire, des optimisations sont faites derrière par le compilateur. (Certes, le Java est un cas légèrement différent de part sa VM, et je ne sais pas programmer dans ce dernier, mais je pense que mon post est quand même valable)

Actuellement, un swich avec beaucoup de cas différents est automatiquement remplacé (quand c&#039;est possible) par un pointeur sur fonctions, justement pour éviter une batterie de if/else.

Je t&#039;invite à lire cet article http://www.safercode.com/blog/2008/10/28/optimizing-switch-case-statements-in-c-for-speed.html qui parle de l&#039;optimisation des switch/case en C.

Ensuite je voudrais parler de ton point sur le pattern &quot;strategy&quot;.
C&#039;est un choix dangereux, car si ta classe est lourde, tu n&#039;as pas forcément envie d&#039;en faire X sous classes pour implémenter quelques stratégies, je pense donc que ce genre de patterns est à utiliser avec parcimonie.

De manière générale, il ne faut pas diaboliser les structures de contrôles if/else et switch.
Je pense qu&#039;il serait plus approprié d&#039;apprendre à les utiliser avec parcimonie, et surtout efficacité, car ils ont tous des avantages/désavantages selon les situations.

Un code contenant des switch et if/else n&#039;est pas forcément difficile à maintenir (même si, ça à souvent l&#039;air d&#039;être le cas), ou compliqué à comprendre.

Voila, bonne journée à toi.</description>
		<content:encoded><![CDATA[<p>Salut à toi Pierre Yves (salut aux autres lecteurs)</p>
<p>Je ne suis absolument pas d&#8217;accord avec ton article (enfin en partie).<br />
Tout d&#8217;abord, si le switch existe depuis si longtemps, c&#8217;est peut être parce que c&#8217;est plus qu&#8217;une structure de contrôle; je veux dire, des optimisations sont faites derrière par le compilateur. (Certes, le Java est un cas légèrement différent de part sa VM, et je ne sais pas programmer dans ce dernier, mais je pense que mon post est quand même valable)</p>
<p>Actuellement, un swich avec beaucoup de cas différents est automatiquement remplacé (quand c&#8217;est possible) par un pointeur sur fonctions, justement pour éviter une batterie de if/else.</p>
<p>Je t&#8217;invite à lire cet article <a href="http://www.safercode.com/blog/2008/10/28/optimizing-switch-case-statements-in-c-for-speed.html" rel="nofollow">http://www.safercode.com/blog/2008/10/28/optimizing-switch-case-statements-in-c-for-speed.html</a> qui parle de l&#8217;optimisation des switch/case en C.</p>
<p>Ensuite je voudrais parler de ton point sur le pattern &#8220;strategy&#8221;.<br />
C&#8217;est un choix dangereux, car si ta classe est lourde, tu n&#8217;as pas forcément envie d&#8217;en faire X sous classes pour implémenter quelques stratégies, je pense donc que ce genre de patterns est à utiliser avec parcimonie.</p>
<p>De manière générale, il ne faut pas diaboliser les structures de contrôles if/else et switch.<br />
Je pense qu&#8217;il serait plus approprié d&#8217;apprendre à les utiliser avec parcimonie, et surtout efficacité, car ils ont tous des avantages/désavantages selon les situations.</p>
<p>Un code contenant des switch et if/else n&#8217;est pas forcément difficile à maintenir (même si, ça à souvent l&#8217;air d&#8217;être le cas), ou compliqué à comprendre.</p>
<p>Voila, bonne journée à toi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par pligg.com</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1296</link>
		<dc:creator>pligg.com</dc:creator>
		<pubDate>Thu, 01 Jul 2010 08:55:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1296</guid>
		<description>&lt;strong&gt;Blog Excilys » Dé-switcher n’est pas jouer...&lt;/strong&gt;

Un court article juste pour se souvenir qu&#039;il ne faut pas écrire de gros switch, parce qu&#039;il y a toujours un meilleur design pattern pour ça !...</description>
		<content:encoded><![CDATA[<p><strong>Blog Excilys » Dé-switcher n’est pas jouer&#8230;</strong></p>
<p>Un court article juste pour se souvenir qu&#8217;il ne faut pas écrire de gros switch, parce qu&#8217;il y a toujours un meilleur design pattern pour ça !&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Illuminez vos logs dans Eclipse par Tweets that mention Blog Excilys » Illuminez vos logs dans Eclipse -- Topsy.com</title>
		<link>http://blog.excilys.com/2010/06/30/illuminez-vos-logs-dans-eclipse/comment-page-1/#comment-1279</link>
		<dc:creator>Tweets that mention Blog Excilys » Illuminez vos logs dans Eclipse -- Topsy.com</dc:creator>
		<pubDate>Wed, 30 Jun 2010 17:22:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2405#comment-1279</guid>
		<description>[...] This post was mentioned on Twitter by thibault sevin. thibault sevin said: RT @rbrugier: Excellent petit plugin pour eclipse : &quot;Illuminez vos logs dans Eclipse&quot; http://bit.ly/9KyycF [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by thibault sevin. thibault sevin said: RT @rbrugier: Excellent petit plugin pour eclipse : &quot;Illuminez vos logs dans Eclipse&quot; <a href="http://bit.ly/9KyycF" rel="nofollow">http://bit.ly/9KyycF</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Dé-switcher n&#8217;est pas jouer par ParrainGeek31SansIPhone</title>
		<link>http://blog.excilys.com/2010/06/25/de-switcher-nest-pas-jouer/comment-page-1/#comment-1196</link>
		<dc:creator>ParrainGeek31SansIPhone</dc:creator>
		<pubDate>Fri, 25 Jun 2010 14:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=2375#comment-1196</guid>
		<description>C&#039;est une transmission de pensée(s), je viens de remplacer un gros bloc switch case par 
final EnumMap sortTranslator 
                = new EnumMap(SortEnum.class);
            sortTranslator.put(SortEnum.REFERENCE, &quot;a.reference&quot;);
            // etc....
Et mon filleul vient de m&#039;envoyer le lien de ton site !
PS: noter que j&#039;ai fait une EnumMap et pas une Map pour éviter de me baser sur le equals/hashCode car je travaille avec des enum.</description>
		<content:encoded><![CDATA[<p>C&#8217;est une transmission de pensée(s), je viens de remplacer un gros bloc switch case par<br />
final EnumMap sortTranslator<br />
                = new EnumMap(SortEnum.class);<br />
            sortTranslator.put(SortEnum.REFERENCE, &#8220;a.reference&#8221;);<br />
            // etc&#8230;.<br />
Et mon filleul vient de m&#8217;envoyer le lien de ton site !<br />
PS: noter que j&#8217;ai fait une EnumMap et pas une Map pour éviter de me baser sur le equals/hashCode car je travaille avec des enum.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
