Comment écrire un protocole de manière précise et compréhensible par un humain?

Personnellement je trouve qu’un DSL (Domain Specific Language) est bien plus confortable. L’IDE peut nous avertir dès la frappe si la syntaxe est correcte ou non, et on dispose de tous les avantages de navigation / édition du code que celui de notre code source.

Exemple de DSL :

givenFakeBlockchain()
  .withInitialWoT(alice, bob)
  .certificationAt(1, bob, alice)
.when()
  .block(1)
  .then()
     .assertCertificationExists(bob, alice);

Tandis que pour Cucumber on peut écrire un test grammaticalement incorrect, tant qu’on ne lance pas on n’est pas averti. Cela oblige à bien connaître la grammaire développée, là où une connaissance de surface suffit pour le DSL (guidage par l’IDE via l’autocomplétion / erreurs détectées à l’analyse du code).

En revanche, le coût côté DSL est de devoir le développer, ce qui est un peu plus fastidieux au début.

2 Likes