2005-01-06

C'est quoi le mieux ?

Éviter les erreurs, certes, c'est une tâche courante quand on construit un site Web, mais comment faire au mieux ? C'est la question que j'ai tendance à me poser.

Depuis le temps, j'ai appris pleins de trucs que je mets en pratique :

  • aucune frame ;
  • séparer l'aspect visuel du contenu ;
  • utiliser du xhtml strict ;
  • desservir le xhtml application/xhtml+xml pour voir au plus vite ses erreurs et avoir un affichage qui se fait d'un coup ;
  • valider la structure xhtml ;
  • utiliser la sémantique des éléments xhtml ;
  • utilier le javascript / ecmascript sans qu'il devienne indispensable ;
  • éviter les cookies si on peut ;
  • éviter de trop avoir de hacks CSS ;
  • avoir des URI sympas et péreines ;
  • rendre son code robuste aux paramètres utilisateur ;
  • utiliser des lettres ascii en bas-de-casse pour les noms de fichiers et les URI ;
  • formater son code joliment (ça c'est juste pour le sport) ;
  • tester sur plusieurs navigateurs, même s'il s'agit d'un navigateur obsolète.

Et puis sûrement d'autres trucs que j'oublie. Jusqu'ici, on me demandait d'apporter des corrections à des sites, ou de ne faire qu'une petite page très simple de présentation, par exemple la page de Yghon ou celle de Bobatomix.

Un ami qui m'accompagne souvent en soirée psytrance, et qui y fait des photos, souhaitait avoir son site pour présenter ses clichés. Je lui ai donc proposé un site recevant ses photos, avec tout ce qu'il faut pour l'administrer. C'est le site de photos de Yanninho, dont l'aspect graphique (rendu par CSS) fonctionne même presque parfaitement avec un navigateur obsolète.

Oui, Yanninho (c'est son nom) prend aussi des photos compromettantes de votre serviteur :D Genre après une nuit à danser, quand je suis en train de dormir dans un coin, la marque du pull sur le front :D Mais il a la décence de ne pas les mettre en ligne, hum ^^

multitude de petites décorations lumineuses

Quand j'ai commencé à réaliser son site, les questions compliquées arrivèrent. Quel type d'URI avoir pour pointer sur une soirée ? Quelle arborescence adopter pour les fichiers ? Comment avoir un calcul de vignettes automatique et transparent ? Comment présenter les photos ? Comment répartir le code ? Où placer la limite entre le côté dynamique (site souple, mais plus lent) et le côté statique (site rigide, mais rapide) ?

Pleins de problèmes intéressants, mais nécessitant une réflexion qui a parfois du mal à aboutir... décision arbitraire, « alea jacta est » :) Ou alors des problèmes qui n'ont pas encore de solution, et restent dans l'état le temps de la réflexion. Par exemple, j'utilise massivement l'option Multiviews et le Path Info de php, ce qui permet d'avoir des URI naturelles, sans extension « .php » ou de paramètres disgracieux « ?plop=2&img=34 ». Mais du coup, pour une adresse donnée, dois-je la faire terminer ou non par le caractère « / » ? Ce dernier petit détail change tout, puisque les liens dans la page devront changer aussi.

Concernant l'hébergement, on a fait appel à online.net. Leur avantage est de ne pas être trop cher, d'autoriser un traffic illimité, et de supporter le Multiviews et le Path Info. En revanche la vitesse de traitement du PHP est d'une extrême lenteur. J'ai pourtant bien optimisé le site, en utilisant des astuces CSS au lieu de PHP pour déporter le boulot côté client. J'ai aussi exploité au maximum les fonctionnalités de cache, en m'appuyant sur l'excellent article d'Éric Daspet sur le cache HTTP. Un changement d'hébergeur est donc prévu malgré tout.

clavier et plantesAu fur et à mesure des versions, au fil des sites Web ou des logiciels que j'ai l'occasion de réaliser, cette question est toujours là : « c'est quoi le mieux ? ». Question délicate pour laquelle je ne suis pas le seul à chercher des réponses ;) On se retrouve alors non plus dans une optique de correction directe de problème : un bug / une correction, qui est une chose triviale à se représenter, mais dans une optique de proposition d'une vision, d'une façon de concevoir les choses. On est face à un problème pour lequel il existe de nombreuses solutions, et celle retenue dépendra de la personnalité et des envies du bâtisseur.

Ce dernier point est important, car il expose les bienfaits d'un système concurrentiel. Pour rester dans le monde du logiciel, imaginez ce qui se passerait si une société imposait, sur la plupart des ordinateurs de la planète, son propre logiciel pour naviguer sur le Web, mettant en place sa seule et unique vision des choses. Ne serait-ce pas là une situation des plus malsaines ?

Ah, on me chuchotte à l'oreille que cette situation a déjà eu lieu... Je parle au passé car pour le bonheur de tous, cette unique vision du logiciel de navigation Web a tendance à s'ébrécher, au point de donner un navigateur obsolète.