Une bible pour le remaniement

lundi 15 mai 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Ce n'est pas souvent qu'après quelques heures un bouquin devienne une référence : c'est exactement ce qui m'est arrivé avec Refactoring: Improving the Design of Existing Code. Martin Fowler a écrit avec Kent Beck et quelques autres une bible. De celles qu'on relit jour après jour.

En deux jours sur la table au bureau, ce livre est déjà passé par toutes les mains. Il permet tout simplement de créer un vocabulaire commun au sein de l'équipe de développement. Dans les phases d'apprentissage -- une fois que le code marche -- il devient une aide très précieuse par son côté systématique. Juste dommage que ce vocabulaire soit anglophone encore une fois.

Et puis il faut avouer que cette exploration est largement aidée par la batterie de tests que nous avons sur openTIME. En attendant d'acheter le livre, un détour par le site refactoring.com pourra peut-être s'avérer utile à quelqu'un. D'ailleurs ce quelqu'un pourrait très bien être moi-même : je viens d'y découvrir le Split Loop. Et j'adore découvir des remises en cause de mes pratiques.

En attendant Web 3.0

lundi 13 février 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Lors de la conférence PHP de Londres, Harry Fuecks a présenté une session sur AJAX. Il montre le pourquoi du comment on arrive à AJAX != toujours "cool".

Et pour ceux qui ne pensent que ça n'arrive qu'aux autres je me revois en pleine discussion avec Rasmus Lerdord : chez Yahoo, ils ont du patché leurs serveurs BSD pour faire face aux requêtes trop lentes venant des dizaines de milliers de modems chinois. Il ne faudrait pas non plus oublier que le succès du trio HTTP / HTML / PHP s'est bâtie sur ce manque de synchronisation.

Rendez-vous AFUP : clients riches avec XUL

jeudi 9 février 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Après la conférence d'Olivier Grange-Labat (LeMonde.fr) lors du dernier Forum PHP à Paris, plusieurs visiteurs étaient venus me voir : un goût de trop leur était resté dans la bouche. L'AFUP organisera donc une session spéciale sur les technologies XUL (l'interface riche de Mozilla). L'occasion de rencontrer / d'écouter / d'échanger avec Laurent Jouanneau, Edouard Andrieu et Olivier Grange-Labat (LeMonde.fr). Le rendez-vous est fixé au 2 mars 2006 - 20h à Paris : les détails et les inscriptions sur le site de l'AFUP.

L'élégance de la conception

samedi 1 octobre 2005 :: perrick :: Développement :: 6 commentaires :: aucun trackback

Hier HTML, aujourd'hui Ajax. Hier la bulle internet, aujourd'hui Web2.0. Un des attraits de l'informatique tient dans sa capacité à créer des modes : plus blanc que blanc, toujours plus blanc... Chaque vague charie son lot de plats cuisinés à réchauffer et d'astuces innovantes à découvrir. En face de cette marée constance, il y a d'abord toute l'humilité devant son travail propre : le code. Surtout devant celui qu'on a produit il-y-a-une-éternité (notion floue qui s'étale entre une journée et des années). Celui-là même qui vieillit. Il y a aussi l'excitation devant des nouveaux outils, des nouvelles pratiques : l'apprentissage permanent.

Maintenant j'ajoute une notion complètement subjective et personnelle : l'élégance de la conception. Cette valeur va croissant avec l'étendue de mon bagage technique. En croisant ces deux valeurs -- qualité réelle de mon code produit et la qualité potentielle de ce même code -- j'arrive à un schéma.

élégance de la conception

Je m'arrête ici pour aujourd'hui : j'aimerais savoir si l'un ou l'autre d'entre vous se retrouve -- plus ou moins partiellement -- dans ce schéma...

Envie de devenir développeur : des pairs

mardi 28 juin 2005 :: perrick :: Développement :: 3 commentaires :: aucun trackback

Depuis que j'ai lancé cette série Envie de devenir développeur, j'ai pu suivre pas mal de discussions sur le sujet parfois en ligne (via des blogs ou des commentaires) d'autres de vive voix. Ces échanges sont le plus souvent réalisés avec des pairs, plus ou moins avancé sur le long chemin du développeur.

Read next

Envie de devenir développeur : de l'enthousiasme

samedi 11 juin 2005 :: perrick :: Développement :: 2 commentaires :: aucun trackback

Je reprends la série Envie de devenir développeur avec un concept à multiples facettes : celui de l'envie et de l'enthousiasme. Je dis multiple parce que pour l'instant j'en connais au moins deux formes : la première très communicative et l'autre plus intime.

Read next

Envie de devenir développeur : un utilisateur

mardi 24 mai 2005 :: perrick :: Développement :: 4 commentaires :: aucun trackback

En tant que développeur, ne sous-estimez pas le pouvoir de l'utilisateur. C'est à lui qui détient la clef de vos efforts : est-ce que vos lignes de code lui faciliteront la vie, le travail ou l'amour ? Si vous ne faîtes pas mieux que son horoscope, pensez à la reconversion.

Read next

Envie de devenir développeur : un maître

lundi 23 mai 2005 :: perrick :: Développement :: 8 commentaires :: aucun trackback

Puisque Dave Hoover m'a demandé d'étayer mes propos précédents avec des exemples, je me vois "obligé" d'y répondre. Je commencerais donc par un maître qui a jalonné mes errements informatiques.

Read next

Envie de devenir développeur ?

vendredi 20 mai 2005 :: perrick :: Développement :: 3 commentaires :: aucun trackback

Hier soir à l'apéro PHP, j'ai eu droit à une de ces questions qui font réfléchir : Comment est-ce qu'on devient développeur ou programmeur ? Déjà je fais une différence entre les deux. Le programmeur écrit du code. Le développeur écrit du code et son boulot continue avec la maintenance, le support, la documentation, les évolutions...

Une fois cette distinction faite, voici quelques éléments nécessaires :

  1. de l'envie, de la volonté. L'ordinateur ne répond que du binaire : marche / marche pas. Parfois c'est très frustrant mais c'est comme ça : il faut apprendre à aimer ça...
  2. un utilisateur. Souvent on commence à développer pour soi, dans son coin. Et puis au bout de quelques semaines, le projet perd de l'intérêt : le code meurt à petit feu. Devenir son propre utilisateur est envisageable : il faut juste apprendre à ne pas être complaisant avec soi même.
  3. un maître. A la différence du prof qui vous dira quoi faire, le maître est celui vers qui on peut se retourner quand on est bloqué. On le retrouve parfois sur un forum, une liste de diffusion. Sauf que l'avoir en chair et en os est un atout indéniable.

D'autres pistes -- pour arriver à un ensemble suffisant -- sont disponibles sur Red Squirrel : Patterns of Software Craftsmanship: From Apprentice to Journeyman. En tout cas on en reparlera à la prochaine rencontre des praticiens XP à Paris le 26 mai 2005.

J'aime pas le javascript

mercredi 23 mars 2005 :: perrick :: Développement :: 7 commentaires :: aucun trackback

Et je sais pourquoi : la compatibilité entre IE / Firefox et Opera n'est vraiment pas terrible. Au passage, la nouvelle future version d'Opera est très agréable (en beta pour l'instant). D'un autre côté ça reste un très bon moyen d'avoir des interfaces interactives (comprendre qui bougent et répondent vite).

Toujours est-il que je viens d'en bouffer une bonne dose pendant 2 jours. Tout ça pour faire un truc tout bête : une boîte de dialogue pour choisir une date et remplir des champs. Au final ça donne quelque chose comme...

  1. Version fermée (je n'ai pas encore cliqué) :
    calendrier fermé
  2. Version ouverte (je viens de cliquer) :
    calendrier ouvert

Comme il faut rendre à César ce qui lui appartient, voici la source de l'original. Pour la version modifiée (et pour voir le truc qui fonctionne -- j'espère), il suffit d'aller faire un tour sur la démo d'OpenTime. Sinon il y a aussi un autre jeu possible : celui les 7 différences -- entre le pop-up de Matt Kruse et celui de la SNCF.

Avant de recevoir des emails de javascripteurs passionnés : dans le titre il fallait lire J'aime pas encore le javascript. Rien de tel qu'un petit tour vers JPSpan pour s'en convaincre.

Passage vers Subversion

vendredi 28 janvier 2005 :: perrick :: Développement :: 8 commentaires :: aucun trackback

Lors de mon changement d'ordinateur, j'ai dû modifier mon arborescence de fichiers : j'en ai aussi profiter pour remettre à plat mon choix de gestionnaire de code source. Après plus de deux ans d'utilisation de CS-RCS (une pensée pour mon premier "vrai" billet sur ce blog), je me suis lancé avec Subversion.

Je connaissais bien TortoiseCVS (puisque je l'utiliser pour le projet de SimpleTest et sa traduction en cours), c'est donc assez facilement que je suis passé à TortoiseSVN. Par contre le commit avec un clic-droit n'est pas suffisant. Il m'arrive souvent de travailler sur plusieurs dossiers à la fois : j'ai donc besoin de sélectionner les fichiers à commiter dans une arborescence complète. Le troisième utilitaire de la suite Subversion -- RapidSVN -- comble ce souhait.

Ensuite direction la configuration, voici les lignes dont j'ai supprimé les commentaires ou que j'ai modifiées :
[miscellany]
enable-auto-props = yes
[auto-props]
*.php = svn:eol-style=native;
svn:keywords=Id URL Revision Author
Note : il me reste encore un soucis à ce niveau-là. Comment faire pour forcer une prise en compte des mots-clefs dans les fichiers déjà existant dans le repository ?

Dernière étape : remettre en place mon build pour openTIME. C'est chose faite avec une seule ligne de commande à changer : svn export d:\serveur\dev --force d:\serveur\shadow. La démo peut de nouveau fonctionner !

Màj du 21/02/2005 : j'ai trouvé la ligne de commande qui efface mon soucis svn propset svn:keywords "Id URL Revision Author" *.php

dcBlogmark, PHP et quelques surprises du validator W3C

dimanche 31 octobre 2004 :: perrick :: Développement :: 3 commentaires :: aucun trackback

De temps en temps, envoyer un page au Validator du W3C permet de se faire une petite piqûre de rappel sur ses propres pratiques. Quel ne fut pas ma surprise de découvrir aujourd'hui que ma page principale n'était plus valide : presque une quinzaine d'erreurs, ça fait beaucoup. Remarque : vous pouvez consulter pendant quelques jours encore ces belles erreurs via la version dans le cache de Google.

Parmi les erreurs faciles à corriger les & à traduire en & : j'en avais deux (dans le titre et dans un billet). Et tout plein de syntax of attribute value does not conform to declared value à propos de mes hreflang. Réflexions faites, c'est le code proposé par JMF pour son très utile dcBlogmark qui pose soucis. Heureusement c'est assez facile à corriger. Dans le template dotClear, il suffit de remplacer :
while(!dcBlogmark::eof()){
  echo '<li><a href="' . dcBlogmark::get('url') . '" title="'
    . dcBlogmark::get('title') . '" hreflang="' . dcBlogmark::get('language') . '">'
    . dcBlogmark::get('title', 20) . '</a></li>';
  dcBlogmark::moveNext();
}

par
while(!dcBlogmark::eof()){
  $dcBlogmark_hreflang = '';
  if (dcBlogmark::get('language')) {
        $dcBlogmark_hreflang = ' hreflang="' . dcBlogmark::get('language') . '"';
  }
  echo '<li><a href="' . dcBlogmark::get('url') . '" title="'
    . dcBlogmark::get('title') .'"'.$dcBlogmark_hreflang. '>'
    . dcBlogmark::get('title', 20) . '</a></li>';
  dcBlogmark::moveNext();
}

Et voilà : plus d'erreurs... en attendant les prochaines ;-)

Tiddlywiki : une appli web pour demain

lundi 27 septembre 2004 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Quand je vois des trucs comme le TiddlyWiki, je me dis qu'effectivement on a pas encore vu le quart de la moitié du tiers de ce qu'on peut faire dans une application web. Du javascript, de l'HTML et une pointe de PHP + MySQL : c'est tout ce qu'il me faut. A part peut-être Ruby on Rails...

[ via Pointblog ]

Mettre des expressions rationnelles (régulières ?) à toutes les sauces

vendredi 20 août 2004 :: perrick :: Développement :: 6 commentaires :: aucun trackback

Lors du barbecue-php de hier, le sujet des expressions rationnelles (ou régulières en franglais dans un match Google déséquilibré : 3890 résultats contre 19400) est revenu sur le tapis. A mon sens, il s'agit là véritablement d'un "cap" dans la vie d'un programmeur / développeur : il y a un avant et un après. Mais -- parce qu'il y a un mais -- il faut se rendre à l'évidence, il y a un deuxième après. Il correspond à la fin de l'apprentissage suivi d'une pratique régulière : c'est particulièrement long et fastidieux.

Et puis hier j'ai mis ma première expression rationnelle dans une requête SQL (pour remplacer un LIKE '%' qui ne faisait plus l'affaire). Et aujourd'hui c'est dans une fonction javascript de validation. Je croise les doigts en espérant avoir passé ce deuxième après.

Mise à jour du 22/08/2004. Apparemment les expressions rationnelles sont dans l'air du temps chez Tobias Schlitt aussi.

Le refactoring pour s'en sortir avec style

mardi 27 juillet 2004 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Il n'y a pas si longtemps, je pestais contre un beau bug d'IE à propos de la superposition d'un formulaire et d'un menu. Quelques jours plus tard, ce n'est plus grave du tout : avec une bonne scéance de refactoring, openTIME peut désormais gérer presque n'importe quel structure de menu ET / OU feuille de style. Il paraît qu'on appelle ça abstraire dans le jargon du TDD. Et un jour peut-être, je pourrais avoir un menu en XUL (ou autre dérivé) au lieu de l'avoir en HTML : en tout cas je suis prêt ;-)