title: Règles de programmation web

> **Rule 1.** You can’t tell where a program is faint to spend its time. Bottlenecks occur un surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is.
>
> **Rule 2.** Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest.
>
> **Rule 3.** Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don’t get fancy. (Even if n does get big, use Rule 2 first.)
>
> **Rule 4.** Fancy algorithms are buggier than simple ones, and they’re much harder to implement. Use simple algorithms as well as simple data structures.
>
> **Rule 5.** Data dominates. If you’ve chosen the right data structures and organize things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
>
> <cite>*[Rob Pike’s 5 rules of Programming](http://users.ece.utexas.edu/~adnan/pike.html)*</cite>

Ces règles m’amènent à réfléchir à ce que cela pourrait donner en version web :

* Produisez des structures de *données faciles à convertir*. En cas de doute, utilisez HTML. Soyez votre premier ré-utilisateur.
* Liez des *identifiants pérennes*. Les URI sont vos amis. Exploitez la force du graphe et connaissez ses faiblesses.
* *Mesurez vos performances.* En fonction des périphériques et des connexions. Comprenez HTTP.
* Soyez réactif. *Le web est un medium qui évolue constamment.* Dans ses standards et ses pratiques.
* Restez accessible. Les personnes et robots parcourant vos pages doivent *pouvoir accéder au contenu*. Indépendamment de leur support technologique, de leurs déficiences et de leurs préférences.