Depuis quelques temps — pas mal d'années — j'utilise diverses solutions de création de site web. Dotclear, Joomla et Mambo pour ne citer que les principaux. Ils ont de grandes qualités, quelques défauts, cependant il n'est pas toujours facile de concilier la bonne tenue de ces solutions et les évolutions permanentes qu'elles impliquent.
On ne change pas un service qui fonctionne correctement
. C'est vrai pour un serveur en production, c'est vrai pour un service web ou autre utilisé en permanence par des utilisateurs. Seulement les problèmes commencent à apparaître lorsqu'il faut mettre à jour. Jusqu'où faut-il le faire alors qu'il est parfois question de sécurité ? Peut-on ne mettre à jour qu'un des composants sans remettre en cause l'intégrité du service ? Par extension peut-on sans risque supprimer un élément fautif sans provoquer l'écroulement du délicat édifice ?
Aucun des outils que j'utilise pour offrir des services web ne propose de manière standard une mise à jour d'un de ses composants. Il faut supprimer l'ancienne version puis installer la nouvelle. Parfois cette désinstallation provoque la perte de données — j'ai vécu cela plusieurs fois en désinstallant des composants Joomla pour les mettre à jour, vive la sauvegarde régulière ! — et il n'est pas toujours facile de prévoir à l'avance ce qu'il en est réellement. Parfois une désinstallation laisse des traces, que ce soit des tables de données dans une base, des fichiers de configuration, voire même une partie de l'élément supprimé. Pas un seul des scripts PHP que j'ai cité n'offre un moteur de mise à jour tel que ceux qu'on trouve quasiment dans toutes les applications utilisées localement sur les postes de travail. Pourquoi ? Est-ce si compliqué de prévoir les mises à jour ? Pourquoi doit-on être tributaire d'un pas à pas, même succinct, pour être capable d'améliorer — ne serait-ce que pour corriger une faille de sécurité — un outil ?
J'entends déjà les orthodoxes — comprendre les geeks — me dire : Mais ce n'est pourtant pas compliqué ! Il suffit de … et patati … et patata …
. À la portée d'un pseudo-geek comme moi mais probablement très impressionnant pour une personne pas très versée dans l'art délicat de la maintenance informatique. Pourquoi ? Simplement parce qu'en cas de problème ou de faux pas, il n'est pas toujours aisé de revenir en arrière, quand bien même toutes les sécurités auraient été prises (sauvegardes, …). Suivre un tutoriel de mise à jour est à priori facile à condition de savoir lire et d'être capable de quelques commandes simples. Mais en cas de problème — et un problème peut être une simple panne de courant ou un accès internet qui se coupe ? Que faire ? C'est à ce moment où on peut se trouver complètement désemparé — parfois à tort — devant l'ampleur des dégâts.
C'est là, à mon sens, qu'il faudrait porter notre attention ! C'est là qu'il faudrait soigner l'usage, c'est là qu'on peut mesurer l'élégance d'une solution. C'est en quelque sorte admettre que le produit n'est pas parfait et qu'il bénéficiera très probablement de corrections voire même d'améliorations et d'intégrer cette caractéristique au cœur même du développement.
D'ailleurs en poussant le raisonnement à l'extrême, un produit élégant devrait même proposer une fonction hara-kiri[1] … Après tout les cellules du corps humain comportent bien une fonction d'apoptose, pourquoi pas les briques du web ?
Notes
[1] Je sens déjà les trolls approcher à grands pas en disant ça !
1 De Kozlika -
Atta atta, j'ai une vraie réponse de geek (oui, moi même personnellement). Regarde un peu :
Where is your patch ?
Hein, hein, t'as vu ? ;)
2 De Franck -
Tss tss, trop facile, faut trouver mieux ;-) Et puis sérieusement j'ai pas la compétence voulue pour écrire une fonction qui fait
self->killAndDestroy();
!3 De Chty -
hm, parfois dotclear a publié des plug-ins permettant de mettre à jour la solution. C'était très pratique.
4 De Franck -
Oui c'est exact pour Dotclear. Ceci dit c'était uniquement valable pour le moteur, pas pour les plugins (voire même les thèmes bien que cela soit probablement plus délicat à gérer).
5 De lipki -
Je suis en train de faire une étude (avec un collègue), sur les différent cms, avantage/inconvénient, pour mon boulot, et pour moi-même.
Mon collègue est pro-cms, sans en avoir jamais utilisé, pour ma part je suit anti-cms (extrémiste), pour en avoir utilisé quelquefois, mais jamais avec succès.
Le but de l'étude, est de prouver a mon collègue que le cms n'est pas une solution miracle a tout les problème et de me rendre moins extrémiste.
Ce petit commentaire sur les mise a jour est très intéressant, je note :).
6 De lipki -
Maintenant du point de vue OO, je ne me souvient pas avoir déjà rencontrer de design pattern, permettant la destruction de ses propres composés physique (dossier, fichier, cache).
7 De Franck -
Et bien voilà quelque chose de nouveau à inventer \o/
Vite un brevet mondial sur l'idée … j'vais être riche … :-)
8 De Scottish Cottages -
Ton captcha a l'air de bien fonctionner. Le mien refuse d'afficher les images, et il laisse passer les messages même si la réponse est fausse. Si on ne répond pas, il ne laisse pas partir le commentaire (donc il marche un peu quand même). Il laisse aussi passer les commentaires de certains robots Tu as modifié quelque chose avant de l'installer ? C'est aussi un thème alto, il est super beau ce thème. Merci.
9 De Franck -
Monsieur Scottish machin chose a fumé la moquette ce matin ! C'est rigolo le captcha qui marche un peu mais pas trop \o/
Un peu space tout de même !
10 De Franck -
J'oubliais, pas de pub ici, ou alors il faut payer très très cher :-)