# Règles de programmation web

2015-04-14

> 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.

> Rob Pike’s 5 rules of Programming

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.

Articles choisis : Commodité et effondrement, Des données aux communs, Accompagner un enfant, Senior developer, L’illusion sociale, Instantané Scopyleft, Enseigner le Web, Simplicité par défaut, Minimalisme et esthétique, Travail en transition, La pairmutation du travail, Principes Web, Travail en transition, Un web omni-présent, Manifeste de développeur, Confort et convivialité, Testament numérique, et bien d’autres…