Prefer declarative over imperative
Rather than telling the machine, in an imperative style, the successive steps to run, it's better to declare, to state the problem you want solved. The developer states the what and leaves the how to the machine. It falls to the machine to interpret the problem and then solve it efficiently.
Field feedback from the community
Règles de calcul des impôts français
François-Guillaume Ribreau
Before applying the principle
Les règles de calcul des impôts français pourraient reposer sur un grand nombre de conditions dissimulées dans le code-source de impots.gouv.fr.
La mise à jour de ces règles de calcul demanderait à chaque fois le besoin de demander l'évolution à un/des développeur(s) ce qui serait à la fois long et couteux.
Pourquoi passer par du développement pour mettre à jour des règles de calcul d'impôt ?
After applying the principle
En réalité, l'équipe technique derrière le service des impôts français a préféré développer un langage dédié (DSL) nommé "M" pour faciliter la maintenance de ces règles https://gitlab.adullact.net/dgfip/ir-calcul/-/tree/master/
Nous pouvons même imaginer — si cela n'existe pas déjà la bas — la création d'un éditeur visuel permettant à des non-techniques de mettre à jour ces règles comme nous avons l'habitude d'éditer des formules d'un tableur par exemple.
Code-règles
Francois-Guillaume Ribreau
Before applying the principle
Coder en dur, avec des conditions et du code les règles d'un programme.
After applying the principle
Permettre à des administrateurs de spécifier sous forme de règle et/ou de formule, via une UI ou une API les règles qui seront ensuite interprétées au sein du programme. 
And you, what’s your field feedback?
If your feedback is validated, it will soon be published on the site.
Other principles
Same vein — click, bounce around.
- Prefer explicit over implicit Development
- Document the rationale Development
- Graphical user interfaces as finite-state machines Product
- Acknowledge inherited debt and tame chosen debt Development
- Stay consistent even in error Development
- Separate concerns Development
- It all comes from the same book. Discover the book →