title:      Critique du livre Javascript pour le web 2.0
slug:       critique-du-livre-javascript-pour-le-web-20
date:       2007-03-21 12:52:28
type:       post
vignette:   images/logos/javascript_web_20.png
contextual_title1:  Critique du livre UML 2 pour les développeurs
contextual_url1:    20070218-critique-du-livre-uml-2-pour-les-developpeurs
contextual_title2:  Critique du livre Redesign Web 2.0
contextual_url2:    20060615-critique-du-livre-redesign-web-20
contextual_title3:  Critique du livre le Zen des CSS
contextual_url3:    20060219-critique-du-livre-le-zen-des-css

<p>En dépit du titre <del>racco</del> vendeur, <a href="http://www.editions-eyrolles.com/Livre/9782212120097/javascript-pour-le-web-2-0">ce livre est excellent</a>. Il a répondu parfaitement à mes besoins ce qui tout de même assez rare donc je vais au passage essayer d'établir la recette pour un bon livre.</p>

<h2>Cible</h2>


<p>Pour commencer un mot sur mon niveau en Javascript avant de commencer le livre&nbsp;:</p>
<ul>
<li>j'ai déjà eu l'occasion à plusieurs reprises de modifier des scripts pour mon usage personnel et professionnel&nbsp;;</li>
<li>je connais les principes régissant l' «&nbsp;architecture » <abbr title="Asynchronous JavaScript And XML">AJAX</abbr>.</li>
</ul>

<p>Le but lorsque j'ai commencé ce livre était pour moi <strong>d'apprendre Javascript et de connaître les principales bibliothèques permettant de gagner du temps lors de mes développements.</strong></p>


<h2>Apprendre Javascript</h2>


<p>À la fois indispensable et souvent, avouons-le, indigeste dans certains ouvrages, les bases du langage utilisé sont ici brièvement rappelées. Pas de pages entières sur la bibliothèque standard mais plutôt une approche en quatre parties&nbsp;:</p>
<ul>
<li>les fondements&nbsp;;</li>
<li>la Programmation Orientée Objet&nbsp;;</li>
<li>la programmation <abbr title="Document Object Model">DOM</abbr>&nbsp;;</li>
<li>la mise en œuvre d'AJAX.</li>
</ul>

<p>Ce chapitre va à l'essentiel, à ce qui est utile pour comprendre ce qui va suivre. Si vous programmez un peu, ça suffit, vous saurez où trouver la documentation si vous avez besoin de plus.</p>


<p>Ce que j'ai pu retenir de cette partie, c'est qu'<strong>il y a peut-être pire que les <abbr title="Cascading Style Sheets">CSS</abbr> en termes de casse-tête inter-navigateur&nbsp;: Javascript !</strong> Et la solution de facilité est donc de passer par des bibliothèques (d'où leur nombre conséquent...).</p>


<h2>Principales bibliothèques</h2>


<p>J'ai découvert les différences entre les bibliothèques et <strong>je ne me doutais pas qu'il y avait autant d'orientations</strong>. Elles sont toutes décrites dans le détail et sont accompagnées d'exemples pratiques. Je me suis pour l'instant intéressé aux bibliothèques légères en utilisant <a href="http://script.aculo.us/">script.aculo.us</a> (pour les effets, en <a href="http://www.prendreuncafe.com/blog/post/2006/03/19/410-effets-javascript-avec-prototype-et-scriptaculous">démonstration chez NiKo</a>) couplée à <a href="http://www.bennolan.com/behaviour/">behaviour</a> (pour le côté non-intrusif/<abbr title="Cascading Style Sheets">CSS</abbr>), je ne sais pas si c'est très pertinent mais ça a le mérite de pas trop mal fonctionner pour le moment. Par contre j'ai une inquiétude pour behaviour qui n'est pas mise à jour depuis longtemps, le projet est mort&nbsp;? pas besoin de mettre à jour&nbsp;?</p>


<p>Il manque la description d'une bibliothèque dont tout le monde parle&nbsp;: <a href="http://jquery.com/">jQuery</a>. Et c'est bien dommage car ça a l'air très prometteur, il faudra que je découvre les avantages et inconvénients par moi-même. <a href="http://www.jquery.info/spip.php?article21">Heureusement</a>, la <a href="http://blog.alsacreations.com/2007/01/24/329-jquery-une-bibliotheque-javascript-simple-et-efficace">documentation</a> <a href="http://www.supinfo-projects.com/fr/2006/introduction_ajax_jquery_fr/">francophone</a> ne <a href="http://weblogger.ch/blog/tag/jquery">manque pas</a>.</p>


<p>Pour ce qui est des grosses bibliothèques graphiques, je ne m'y suis pas encore intéressé pour l'instant mais je saurais où trouver l'information si j'en ai besoin.</p>


<h2>Études de cas</h2>


<p>Il y a deux études de cas qui sont proposées, l'une utilisant l'<abbr title="Application Programming Interface">API</abbr> de Google maps, la seconde utilisant les services web de Yahoo! et d'Amazon. <strong>La description de tels exemples est à mon avis essentielle dans un livre pour comprendre l'architecture complète d'un mini-projet et passer outre les premières difficultés</strong> (comme ici les appels AJAX sur des serveurs distants). Même pour un langage de script, on sait très bien qu'il va au final y avoir des centaines, voire des milliers de lignes de code et il est important d'avoir des exemples montrant l'organisation d'un tel code <strong>avant</strong> que ça devienne illisible.</p>


<h2>Astuces et bonnes pratiques</h2>


<p>Le dernier chapitre traite des optimisations, des tests unitaires, de la documentation, finalement de l'ensemble des bonnes pratiques à avoir pour bien développer en Javascript. Par ailleurs certaines de ces pratiques sont rappelées au fil de l'ouvrage ce qui est pratique car généralement <strong>j'aime bien commencer à tester ce que je lis avant d'arriver à la fin du livre</strong> :-).</p>


<p><strong>Au final, un très bon livre pour ceux qui étaient réticents comme moi à la déferlante AJAX et qui doivent s'y mettre sur le tard. Félicitations aux auteurs pour cette ressource !</strong></p>


<p>Vous pouvez <a href="https://larlet.fr/david/biologeek/archives/20060219-critiques-de-livres-aux-editions-eyrolles/">consulter l'ensemble de mes critiques de livres</a>.</p>
