Even Faster : 1 – ajax

Je vous avais dit que je ferai un retour sur le dernier livre de Steve Souders, « Even Faster Web Sites ». On commence par un chapitre qui n’est pas rédigé par Steve lui même, mais par Douglas Crockford, « Ajax Performance ». De l’Ajax par Douglas Crockford, ça donne envie.

En fait Douglas y parle plutôt de compromis entre la performance et le reste, ainsi que de l’importance des mesures avant de savoir quoi optimiser. On ne parle pas vraiment d’Ajax.

Le contenu du chapitre

Je comprends que ce chapitre soit le premier, de part le contenu du texte, mais j’ai été très déçu à la lecture. Il y a pourtant tous les éléments nécessaires à un bon livre technique : une phrase choc pour frustrer et inciter à lire la suite, une information technique, et un concept à faire sien avant de le mettre en pratique chez soi. Malheureusement aucun des trois n’est suffisamment fort ou utile pour me contenter.

La phrase choc

C’est la seule phrase choc du chapitre, mais elle est efficace :

Fast. Good. Cheap. Pick Two [Rapide. Bon. Pas cher. Choisi en deux.]

Travailler la performance c’est faire des compromis. Je suis assez en accord avec cette idée, c’est important de le dire, mais je reste sur ma faim.

L’information technique

Notre information technique est tirée des conférences Velocity de l’année dernière. D’après les données de l’équipe de Microsoft Internet Explorer, le code javascript représente une part faible de l’activité du navigateur :

Activity Layout Rendering HTML Marshaling DOM Format JScript Other
Cost 43,16% 27,25% 2,81% 7,34% 5,05% 8,66% 3,23% 2,5%

Même pour les applications centrées sur ajax, javascript reste en dessous de 15%, DOM est bien plus lourd pour le navigateur :

Activity Layout Rendering HTML Marshaling DOM Format JScript Other
Cost 9,41% 9,21% 1,57% 7,85% 12,47% 38,97% 14,43% 3,72%

La philosophie derrière ces chiffres c’est « ne vous focalisez pas trop sur Javascript ». Comprendre comment fonctionne DOM et améliorer le rendu & CSS est probablement plus intéressant. La phrase clef c’est que diviser par deux le temps d’exécution du code javascript lui-même ne sera pas vraiment remarqué.

C’est vrai encore une fois, ça mérite d’être dit, mais ce n’est pas ça que j’attendais d’un chapitre « Ajax Performance ».

Le concept à ramener chez vous

L’information vraiment utile, qu’il faut retenir et qui justifie d’avoir passé du temps à lire, c’est le rappel que les impressions sont souvent de mauvais juges. Il faut faire des mesures, les analyser, puis seulement optimiser là où c’est utile et où c’est le plus efficace, en se rappelant que c’est un compromis à trouver entre les performances, la qualité, et les coûts.

Là c’est quelque chose qui mérite plus d’un paragraphe, mais est-ce vraiment ce que j’attends de ce chapitre ?

Alors ?

Alors ce chapitre est en fait une bonne introduction où on discute de la pertinence des concepts et de l’importance à y attacher avant de rentrer dans le vif du sujet avec les autres chapitres. Sauf que six pages d’introduction pour y dire si peu de choses, et surtout sans aucun exemple pratique, c’est assez long.

Mais surtout, cela aurait vraiment du être présenté en préface ou en introduction, condensé sur deux à quatre pages. « Ajax performance » ? un chapitre complet ? j’aurai aimé de la technique, qu’on discute de la taille des bibliothèques, de comment réduire l’empreinte de javascript, comment exploiter au mieux le DOM sans faire écrouler les performances, au moins me signaler que je commence à avoir des implémentations JSON natives dans les navigateurs modernes et que les utiliser peut faire une différence significative.

Finalement j’ai lu, j’ai trouvé ça peu utile, ça m’a laissé une mauvaise impression. Commencer le livre par une mauvaise impression ce n’est pas bon. Si vous sautez directement au second chapitre, vous n’aurez pas manqué grand chose.

Publié par edaspet

Plus d'informations sur mon profil en ligne

Une réponse sur « Even Faster : 1 – ajax »

  1. Et puis la remarque sur la répartition est assez bêtes. Dans un site dynamique, avec pas mal de Javascript et encore plus si on fait de l’AJAX, l’important devient moins ce qui se passe avant le chargement que après, puisque l’AJAX permet de faire des chargements de petites parties.

    En ce qui concerne la « phrase choc », je l’avais déjà entendu d’une manière que je trouve plus précise (mais j’ai oublié l’auteur), sous la forme « Fast, accurate, simple : pick two of three ».

Les commentaires sont fermés.