vinch.be logo

Les principes de simplicité appliqués au design et au développement Web

3 août 2008

Depuis quelques temps, je ne jure plus que par la simplicité dans le design et le développement Web. C’est pour moi le meilleur moyen pour obtenir des sites et applications efficaces et ergonomiques. C’est certainement le travail que font Google et Apple qui m’a inspiré à emprunter cette voie de la sagesse.

Cette voie n’est pas du tout une voie de la paresse… En effet, on pourrait penser que faire du simple, c’est simple… Cela peut paraître naturel de penser comme cela mais en réalité, c’est l’inverse qui se produit. Au plus on veut faire quelque chose qui sera simple et compréhensible pour l’utilisateur, au plus la tâche est ardue… En conclusion : faire du simple, c’est compliqué et ça demande du boulot !

Je vous présente ci-après quelques principes de simplicité, tantôt scientifiques, tantôt purement philosophiques, mais qui peuvent très certainement aider à atteindre la perfection.

KISS principle

KISS signifie “Keep It Simple, Stupid” que je ne pense pas avoir besoin de vous traduire. J’ai découvert ce principe via le framework PHP Symfony qui en a fait un de ses chevaux de bataille.

Le principe dit que la simplicité doit être un objectif clé et que toute complexité inutile doit être évitée. Ce principe ne s’applique pas uniquement aux développement de logiciels mais également à l’animation, au journalisme, à la photographie, etc. Antoine de Saint-Exupéry dit à ce sujet que la perfection n’est pas atteinte quand il n y a plus rien à ajouter mais quand il n y a plus rien à enlever.

Un contre-exemple du KISS principle est la machine de Rube Goldberg qui consiste à réaliser à réaliser une tâche simple d’une façon extrêmement compliquée. On peut apercevoir un exemple de machine de Goldberg dans les premières minutes du film Retour vers le futur, Emmett Brown ayant construit cette machine pour préparer son petit-déjeuner et donner à manger à son chien Einstein. Un autre exemple époustouflant ici (ils sont fous ces Japonais).

YAGNI

YAGNI est l’acronyme de “You Ain’t Gonna Need It” c’est à dire “Tu n’en auras pas besoin”. Ce principe, qui s’applique à l’ingénierie logicielle, veut que les développeurs n’ajoutent pas de fonctionnalités avant d’en avoir réellement besoin. Ne pas respecter ce principe peut mener à des problèmes car les fonctionnalités inutiles doivent être codées, testées et documentées ce qui coute du temps, peut être pour rien. De plus, cela mène à des applications plus larges, plus lourdes et plus compliquées (code bloat) ce qui augmente les chances d’avoir des bugs.

Don’t Repeat Yourself

“Don’t Repeat Yourself” souvent abrégé en DRY et qui signifie en français “Ne te répète pas” est une philosophie dont le but est d’éviter la duplication dans le développement de logiciels. En effet, la duplication peut diminuer la clarté, augmenter la difficulté de maintenance et mener à l’inconsistance. Pour éviter la duplication, il faut profiter à bon escient des possibilités que nous offre le langage de programmation ou le framework utilisé : includes, héritage de classes, helpers, etc.

DRY est aujourd’hui relativement connu car il s’agit d’un des principes fondamentaux du populaire framework Web Ruby on Rails.

Rasoir d’Occam

On doit le principe du rasoir d’Occam à Guillaume d’Occam, un frère franciscain du 14ème siècle. Ce principe dit : “Les multiples ne doivent pas être utilisés sans nécessité”. Aussi appelé “principe de simplicité”, “principe de parcimonie”, ou encore “principe d’économie”, il exclut la multiplication des raisons et des démonstrations à l’intérieur d’une construction logique. On traduit souvent ce principe sous la forme d’une préférence de l’hypothèse la plus simple parmi toutes celles qui sont échafaudées. La métaphore veut que le rasoir ne coupe que les mauvais raisonnements.

Si on traduit cela au développement et au design Web, on pourrait dire que la solution la plus simple pour arriver à un résultat est souvent la meilleure et la plus efficace.

Pour la petite histoire, un épisode de la série américaine Dr. House est consacré au principe du rasoir d’Occam. Ceux qui connaissant la série comprennent pourquoi.

Spartan Programming

Spartan Programming est une technique qui vise à minimiser la complexité du code source de votre application. Cela se passe au niveau du nombre de lignes de code, du nombre de structure de contrôle, des noms des variables et fonctions, et bien d’autres aspects…

Le nom de la technique vient du fait que les Spartes se battaient avec un casque et un bouclier comme uniques protections, révélant ainsi à leur ennemis leur impressionnante musculature. Cela prouve que la simplicité est souvent synonyme de puissance.

L’excellent blog Coding Horror a écrit un article à ce sujet il y a quelques semaines.

Et vous, quels sont vos principes ? En connaissez vous d’autres ?