mercredi 24 septembre 2008

Un visiteur, venu d'ailleurs !

Voici une réflexion que m'a partagé un développeur sénior et accessoirement chef de projets... je vous la partage :

"Avant d'implémenter un pattern (Visitor en l'occurence), il faut se poser la question suivante et faire un choix :

  • Soit on ne l'implémente pas et on prend un débutant pour le maintenir (pas cher).
  • Soit on l'implémente et on se paye un expert (plus cher)."

L'idée sous-jacente est le fait qu'implémenter le design pattern visitor a un coût de maintenance plus élevé que de ne pas l'implémenter. L'autre idée est qu'un design pattern, c'est manifestement trop complexe (compliqué ?) pour le comprendre et le maintenir pour un développeur junior.

Le fait est que les design pattern sont encore assez méconnus. Autour de moi les gens ont entendu le terme "design pattern" mais ont encore du mal à y poser l'idée qu'il y a derrière. Personnellement je ne connais pas les design pattern (à part singleton ;-) mais en revanche je connais leurs intérêts !

Le principal intérêt est que le design pattern est une solution éprouvée aux problème rencontré. C'est à dire qu'il est utilisé par des milliers de développeurs dans le monde et que si tant de monde, les utilisent, c'est sûrement que c'est optimisé et robuste.

En plus de cela, les design pattern sont universels et documentés ! Il suffit de taper "Visitor Design Pattern" dans Live Search pour s'apercevoir qu'il y a tout une littérature qui existe dessus.

Donc si on ne connait pas un design pattern, il est en revanche TRES SIMPLE de retrouver sa documentation sur le web, et de le comprendre. Un double intérêt pour le développeur junior, qui à son tour pourra l'implémenter quand il rencontrera ce type de problème !

Je ne sollicite pas beaucoup mes nombreux lecteurs mais j'aimerai bien avoir leur avis là dessus.

jeudi 11 septembre 2008

Techdays 2009 - Préinscriptions

Je crois que tout est dans le titre, il ne manquait plus que l'URL. Là voici. Pour information, l'événement se déroulera le 10, 11 et 12 février 2009 au Palais des Congrès de Paris.

Non je NHiberne pas !

Sous ce subtil jeu de mots, voici un blog que j'ai découvert en surfant : The NHibernate FAQ. C'est véritablement une mine d'informations sur le sujet. Ce blog traite d'autres sujets comme le TDD et le DDD par exemple. Cette liste n'est évidemment pas exhaustive, je vous laisse le soin d'y jeter un oeil. Hop, rajouté dans les liens sympas.

mardi 2 septembre 2008

Raccourcis clavier

On en parle souvent, ils sont tellement pratiques allez, l'url qui va bien : http://www.microsoft.com/enable/products/KeyboardSearch_xp.aspx (pour XP)

Pour la petite histoire je cherchais le raccourci permettant de réduire/développer les dossiers dans une arborescence de projets sous VS. En effet quand on a une arborescence qui ressemble à la forêt amazonienne, on est bien content de l'élaguer à coup de flèche gauche :)

Allez je ne suis pas ingrat : http://windowshelp.microsoft.com/windows/en-us/help/2503b91d-d780-4c80-8f08-2f48878dc5661033.mspx (pour Vista)

vendredi 8 août 2008

Parcourir les éléments d’une winform

Petit tip qui pourra me resservir et peut-être pour vous aussi...
L'objet de ce billet consiste à montrer comment parcourir simplement tous les éléments d'une winform en .Net.

Parcourir tous les contrôles d’une winform
Pour récupérer tous les contrôles d’une winform, rien d’exceptionnel. Voici ce que j'ai fait :



Ce qui n’est pas bien compliqué, mais bien pratique à utiliser :


Et voilà, j'ai énuméré tous les contrôles de ma Winform. Enfin presque. Les nouveaux contrôles du framework 2.0 (ToolStripItems) n'héritent pas de Control.

Parcourir tous les ToolStripItems d’une winform

Rappel : Les ToolStripItems sont les éléments contenus dans les menuStrip, statusStrip, toolStrip et toolStripContainer :

Voici la hiérarchie de classe des ToolStripItems :


L’idée ici est de parcourir les contrôles de la winform (comme quoi ce qu’on a fait au dessus va nous servir) et de regarder ceux qui sont de type ToolStrip (la classe ToolStrip hérite de Control, elle)


Toujours aussi simple d’utilisation :


Maintenant qu’on a tous les ToolStrip de la winform, et bien on va les parcourir et aller chercher les ToolStripItems de tous les ToolStrips. Auparavant, on va écrire un énumérable qui va parcourir les ToolStripItems du ToolStrip et vérifier s’ils contient d’autres ToolStripItems :



On va utiliser cette énumération comme ceci :



Qui retourne tous les toolstripitems du toolstrip passé en paramètre.

Triomphe !

L'année dernière, j'envisageais de passer mon permis moto. Pour diverses raisons (financières entre autres) j'ai repoussé l'échéance à "je ne sais pas quand mais pas pour tout de suite". Bref, n'y connaissant rien, j'avais acheté une revue et il y en a une qui m'avait botté d'emblée. Oui la Triumph Street Triple. Juste par son look, elle m'avait séduite. Le test de la moto dans la revue était très concluant. (elle a d'ailleurs gagné le prix de la moto de l'année 2008).

Ge-Off, lui, a passé le cap et passe actuellement son permis moto. Et il nous signale ici qu'il y a une déclinaison de la Street Triple plus "sport" : La Street Triple R (sortie courant 2009). Apparemment elle a la même puissance qu'une Street mais on peut régler beaucoup plus de choses (je vous passe les détails). Il nous annonce clairement que c'est ce qu'il va surement s'offrir :) Je sens qu'il y en a plus d'un qui va le jalouser, à commencer par moi. Rrrrrrrr

jeudi 3 juillet 2008

Please Help

En informatique en général, quand je galère sur un problème, j'hésite toujours de demander de l'aide à un collègue que je ne connais pas ou peu, même s'il est expert (c'est fou le nombre de personnes qui s'auto-proclament expert en informatique).
Pourquoi j'hésite me demandez-vous ? Parce qu'il y a toujours une tendance chez les personnes qui veulent vous filer un coup de main, à vouloir se montrer supérieur à vous. Celà en soi, ça ne me gêne pas plus que ça, après tout c'est humain de vouloir se faire mousser un peu. Mais quand ce dit expert, n'arrive pas à résoudre votre problème alors là... c'est carrément le drame. Il prend le contrôle de votre machine et essaye à peu près tout et n'importe quoi (surtout n'importe quoi).

Résumé :
- Je perds du temps et galère sur un problème.
- Je me résouds finalement à demander de l'aide à mon collègue expert (en me disant que c'est franchement puérile comme réaction de ne pas demander de l'aide)
- Le collègue ne s'en sort pas mieux que moi
- Le collègue monopolise ma machine.

Bilan :
- Je ne suis plus tout seul à perdre du temps mais on est 2.

Epilogue :
Il se trouve que nous n'avons pas trouvé la solution au problème. J'ai attendu le lendemain, redemandé à quelqu'un d'autre... pareil mais là je l'ai stoppé vite fait quand il a voulu prendre le contrôle de ma machine (c'est marrant le fait qu'on ne puisse rien faire quand on n'a pas la souris en main !)

J'ai finalement demandé à quelqu'un dont je connais et reconnais ses compétences dans de multiples domaines en informatique. via Messenger, il a tout de suite diagnostiqué le problème et m'a dit comment le résoudre et au pire le contourner. En 5 minutes c'était corrigé.

C'est pourquoi je ne demanderai plus d'aides à des gens dont j'ignore leur(s) réelle(s) compétence(s) car 9 fois sur 10, on va droit dans le mur !

J'ai quelques amis qui ont d'incroyables compétences. Eux, ils le savent qu'ils sont compétents et n'ont pas besoin d'étaler leur science. Ces gens là, ils t'aident uniquement pour t'aider. Et en plus, ils le font bien ! J'adore cet état d'esprit. Ce qui est con c'est que je peux rarement leur rendre la pareille (en informatique du moins).