Skip to content
🌟 The full digital book is out: download it as soon as you buy 🌟
Development

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.

Explicite & Déclaratif > Implicite & Impératif

And you, what’s your field feedback?

If your feedback is validated, it will soon be published on the site.

Same vein — click, bounce around.