David's blog

To content | To menu | To search

Book Review / Critique livre

Entries feed - Comments feed

Thursday, July 30 2009

Critique livre : La programmation en pratique

La programmation en pratique Un livre que je recommande chaudement à tout programmeur ou apprenti programmeur : La programmation en pratique de Brian W. Kernighan[1] et Rob Pike, éditions Vuibert informatique, ISBN 2-7117-8670-6.

Ce livre aborde tous les sujets qu'un bon programmeur doit connaître :

  1. Le style : comment écrire du code clair et bien commenté ;
  2. Les algorithmes et structure de données : l'importance de choisir un bon algorithme, évaluer sa complexité et les différents types de structures de données (listes, arbres, tables de hachage) ;
  3. La conception et l'implémentation : comment concevoir un programme, choisir un algorithme et bien réutiliser les bibliothèques existantes ;
  4. Les interfaces : comment faire un code réutilisable par d'autres ;
  5. Le débogage : quelles méthodes et outils utiliser pour trouver les erreurs de ce !!#@!?!! de programme ;
  6. Les tests : comment tester son programme, de manière systématique et reproductible ;
  7. Les performances : comment évaluer les goulots d'étranglement dans un programme et comment y remédier ;
  8. La portabilité : comment écrire un programme exécutable sur différentes plate-formes, et ce même en langage C ! ;-)
  9. La notation : quelques exemples qui montrent qu'un programme utilisant une notation adaptée facilite la vie de son utilisateur.

Ce livre est abondamment illustré d'exemples en C, C++, Java, Perl ou Awk. Les exemples sont clairs et l'approche est pragmatique, mais avec le soupçon de théorie quand c'est nécessaire. Chaque chapitre se termine par des exemples et des lectures complémentaires, permettant d'approfondir un sujet si nécessaire. Les auteurs ont de l'expérience et savent transmettre leur savoir.

J'ai particulièrement aimé ce livre car il concentre dans un ouvrage relativement concis (300 pages) tous les conseils que j'ai pu lire ou découvrir à droite et à gauche dans ma vie de programmeur. Et même si vous programmez en PHP, Python ou OCaml, les points abordés sont universels et valides pour tous les langages. Ce livre est une perle, lisez-le... et appliquez ses règles ! ;-)

Notes

[1] Oui, LE Kernighan du langage C et de Awk.

Monday, July 20 2009

Critique livre : The Visual Display of Quantitative Information

The Visual Display of Quantitative Information« Une image vaut mille mots. » Encore faut-il que cette image reflète fidèlement l'information représentée, surtout quand les données sont des données scientifiques. C'est tout l'enjeu du livre passionnant d'Edward R. Tufte, The Visual Display of Quantitative Information. C'est un « vieux » livre, dont la première édition date de 1982 (27 ans déjà !) et la seconde de 2001.

Ce livre est semble-t-il un grand classique de la représentation des données statistiques et ce n'est pas par hasard : il explique dans son texte et montre brillamment dans ses illustrations quels sont les règles pour faire des graphiques illustrant fidèlement des nombres ainsi que les pièges à éviter. Comment faire une illustration qui permette à son lecteur de comprendre des données numériques, géographiques ou autres, sans être trompé par ce graphique ?

Tufte construit son argumentation en deux parties. Dans la première il puise dans des sources historiques pour donner des exemples d'illustrations réussies ou complètement ratées[1].

Parmi ses exemples historiques, un exemple très parlant est cette carte de 1869 faite par le français Charles Joseph Minard illustrant le sort des armées napoléoniennes durant la campagne de Russie :

Taille des troupes napoléoniennes durant la campagne de Russie

Sur une même illustration sont représentées :

  • par l'épaisseur du trait, sa couleur et les annotations chiffrées, la taille des troupes napoléoniennes, de 422.000 hommes initialement à 10.000 hommes au retour de la campagne ;
  • par le positionnement spatial, les lieux de combat ou les événements marquants (voyez le franchissement de la Bérézina !) ;
  • par une correspondance verticale avec un graphique des températures, l'influence de la température.

Cette illustration est à la fois jolie à regarder, très parlante et historiquement fidèle.

Dans une seconde partie, il construit une théorie des graphiques de données (theory of data graphics) en donnant des règles à suivre et des explications pas à pas pour augmenter l'efficacité visuelle et la fidélité d'une illustration.

Un exemple de règle donnée par Tufte dans sa théorie des graphiques de données :

Erase non-data-ink, within reason

Ce que l'on pourrait traduire par :

Effacer l'encre sans information, avec discernement

L'idée dans cette règle est que chaque portion de noir ou de couleur dans un graphique doit apporter une information. Si elle n'en apporte aucune, il faut la supprimer. Et Tufte montre comment le faire. Par exemple en supprimant les grilles ou marques inutiles sur les axes. Mais là, il vous faudrait lire le livre pour vraiment comprendre par les exemples de Tufte. ;-) Et l'auteur va plus loin en montrant des formes originales de graphiques scientifiques.

Ce qui me passionne dans ce livre, c'est que Tufte applique à son livre les conseils qu'il donne. Son ouvrage est un véritable objet graphique, aussi agréable à lire qu'intéressant à comprendre. Tufte a dû s'auto-éditer pour obtenir le résultat qu'il désirait.

Cet ouvrage est un peu cher, 40€ pour 200 pages avec peu de texte et pleins d'images, ;-) mais à mon avis cela vaut l'investissement. Vous ne verrez plus ces immondes graphiques en camembert de la même façon ! :-)

Notes

[1] Par exemple, si une image est utilisée pour représenter une quantité, sa surface doit être proportionnelle à la quantité et non sa hauteur.

Thursday, February 12 2009

Critique livre: Ergonomie web

Faire un site web n'est pas une chose simple, faire un bon site web utilisable par son public est encore plus difficile ! Bien souvent, on ne sait pas si quelque chose est mal fait, et si oui comment y remédier. Le livre Ergonomie web d'Amélie Boucher (32 €, ISBN 978-2-212-12158-2) n'est pas la solution miracle mais donne de sérieuses pistes pour arriver à faire un site web réellement fonctionnel.

Le livre est divisé en cinq parties. La première partie est une introduction à l'ergonomie web, avec une rapide présentation des concepts et un détail des dix idées reçues sur l'ergonomie web (règle des trois clics, les internautes sont des idiots, ...).

La deuxième partie détaille plus avant les fondements de l'ergonomie. Tout en restant accessible, Amélie Boucher présente quelques théories et lois à la base de l'ergonomie, comme la loi de Fitts (« une cible est d'autant plus rapide à atteindre qu'elle est proche est grande »), le concept d'affordance (les possibilités d'action suggérées par les caractéristiques d'un objet), etc. Cette deuxième partie détaille ensuite comment prendre en compte les utilisateurs de son site web avec la méthode des personas (des utilisateurs types qui font des actions sur votre site).

La troisième partie est le cœur du livre. Elle commence par un long cinquième chapitre qui donne les douze règles pour optimiser l'ergonomie de son site :

  1. Architecture : le site est bien rangé ;
  2. Organisation visuelle : la page est bien rangée (PDF) ;
  3. Cohérence : le site capitalise sur l'apprentissage interne ;
  4. Conventions : le site capitalise sur l'apprentissage externe ;
  5. Information : le site informe l'internaute et lui répond ;
  6. Compréhension : les mots et les symboles sont choisis minutieusement ;
  7. Assistance : le site aide et dirige l'internaute ;
  8. Gestion des erreurs : le site prévoit que l'internaute se trompe ;
  9. Rapidité : l'internaute ne perd pas son temps ;
  10. Liberté : c'est l'internaute qui commande ;
  11. Accessibilité : un site facile d'accès pour tous ;
  12. Satisfaction de votre internaute.

Chacune de ces règles est abondamment commentée et illustrée, avec des exemples à suivre et à ne pas suivre pris sur des sites web grand public. Ce cinquième chapitre est la colonne vertébrale de l'ouvrage. Si vous n'avez pas le temps de tout lire, lisez celui-ci ! Cette troisième partie se termine par quelques conseils et explications méthodologiques pour l'audit ergonomique.

La quatrième partie aborde l'élaboration concrète d'un site web de A à Z, de la définition des contenus et l'analyse concurrentielle aux zonings et maquettes des écrans.

Enfin, la cinquième partie donne différentes méthodes pour mettre à l'épreuve un site par de vraies utilisateurs, de la méthode de tri des cartes pour organiser un site aux tests utilisateurs.

L'ensemble du livre est d'une lecture agréable. Le contenu ardu est limité à son strict minimum et le livre est bien illustré, facilitant la compréhension des explications bien souvent liées à l'aspect visuel des choses. Les conseils méthodologiques semblent empreints de pragmatisme, reflet d'une utilisation réelle des méthodes expliquées. De nombreuses fois, l'auteur explique ce que l'on peut simplifier et les points à ne surtout pas négliger dans le traitement ergonomique de son site. Évidemment, si on fait un petit site web sur un coin de table, on n'a pas forcément besoin de toutes les méthodologies proposées dans ce livre. Mais avoir en tête les douze règles de l'ergonomie web me semble indispensable. Enfin, le livre donne de nombreuses références, sur le web ou en livre papier, pour aller plus loin.

En résumé, je trouve ce livre vraiment excellent : clair, détaillé, pédagogique. Une lecture obligatoire pour tous ceux qui conçoivent ou participent à l'élaboration d'un site web.

Au passage, je compte lancer une grande souscription : envoyer un exemplaire de ce livre à chaque membre (une centaine de personnes) de la société VSC technologies, auteur du désastre de l'informatique et de l'ergonomie web qu'est Voyages-sncf.com ! ;-)