courtphilosophie du codelangagecommunicationtests

Le langage des spécifications

Publié le05/04/2021

Le travail du développeur, comme :

  • d'un côté de lui, le product owner/manager,
  • et de l'autre, les ops,
  • et ainsi dans chaque direction;

est de convertir des langages en d'autres.

Entre le langage de spécifications
(du README à la documentation,
en passant par les user stories)
et le langage executé sur les plateformes-cibles,
la frontière est grande.

On cherche vivement à réduire les couches qui les séparent.

À cette fin, on peut utiliser une forme de
spécifications programmatiques pour
automatiser les tests et,
on aimerait, pour développer le logiciel même.

Elle présente l'avantage d'être lisible par
les humains, même non-développeurs une fois traitée,
et de s'interfacer avec le logiciel pour
jouer des partitions de tests et s'assurer
de son état optimal.

Maintenir cette couche, comme les autres,
consomme du temps, de l'énergie et produit d'autres externalités souvent mal maitrisées.

C'est une quête permanente, qui peut toutefois
s'alléger à mesure que l'on découvre et fixe
de nouveaux motifs de conception (les design patterns).

Cette fois, l'idéal étant de parler avec les mêmes concepts
"de la bouche à l'assembleur".

Une fantaisie qui pourrait prendre forme
si l'on arrive un jour à produire des ordinateurs
neuronaux avec lesquels interfacer nos cerveaux.