vendredi 9 avril 2010

Règles pour le Codage

Ce que je trouve très intéressant dans un livre technique c'est quand celui-ci liste explicitement de "bonnes pratiques" que l'on sent sortir tout droit de l'expérience de l'écrivain.

L'œuvre majeure dans ce domaine est bien sur Code Complete 2 mais je suis tombé sur une page Web contenant une liste très intéressante, tirée du livre Programming Pearls.

Il s'agit de l'Annexe 4 : Rule for Coding qui est une retranscription d'une liste que l'auteur, Jon Bentley, avait constitué en 1982 dans son livre "Writing Efficient Programs". Oui, 1982 !!! et toutes ces pratiques sont toujours valides. Qui peut se targuer d'une telle longévité de ses conseils en matière informatique ?

Quand vous lirez ces règles, vous vous direz certainement que c'est évident, que vous mettez déjà en pratique ce genre d'heuristiques programmatoires. Oui, mais Jon Bentley a réussi à mettre des noms aux activités que nous menons tous les jours quand nous programmons. Comme dirait le poète, une chose n'existe pas si elle n'a pas de nom. Mettre des noms à tous les aspects de l'activité de programmation sert à faire reconnaitre le véritable travail qui est effectué. Sans cela, la programmation, pour le non-informaticien reste du ressort de la magie.

Aujourd'hui, 2010, le problème n'est plus vraiment de ressortir toutes ces "bonnes pratiques", toutes ces règles. La difficulté réside dans l'application systématique de ces règles. Comment faire pour que tous les programmeurs d'un projet de développement logiciel connaissent, utilisent, appliquent toutes ces règles de façon exhaustive ? Comment, au niveau de l'activité d'assurance qualité, vérifier l'application complète de ces règles pour l'ensemble de code concerné sans devenir un tortionnaire envers ceux qui programment ?

La programmation se base sur le mécanisme d'abstraction pour permettre de construire des systèmes complexes et gérables par des êtres humains. Or le revers de la médaille "abstraction" est le fait que chaque programmeur peut cacher l'implémentation d'une fonction sous des aspects de code fonctionnant correctement.

Le meilleur moyen pour qu'un programmeur mette en œuvre les règles et les bonnes pratiques est de lui fournir des outils lui permettant de tester par lui-même la qualité de son code. Car, comme l'optimisation est la cause de tout mal en se bas-monde, il faut optimiser, et donc essayer d'appliquer les règles explicitement que si on constate un problème de performance. Il est donc utile de repérer dès la conception de l'architecture les points clés dont dépendent les performances attendue. La qualité de tous ces points clés doit être soigneusement vérifiée.

Ainsi, lors de la façon de définition de l'architecture, il faut non seulement définir les éléments statiques, dynamique et l'allocation des ressources matérielle, mais en plus, identifier les éléments critiques en terme de performance.

Aucun commentaire: