Vous connaissez la spécification IEC64199 ?
C'est le no-code du futur industriel pour conceptualiser des usines.

Software-Defined Factories.

Miam.

Et après, ça génère du code binaire qu'on peut déployer via un modèle de déploiement.

"this is craaazy"

https://iec61499.com/

#TDD "Test-driven development", et non, nous ne sommes pas drogués, simplement, on écrit d'abord les tests : le code n'existe pas encore ; ce qui a pour effet de "conduire" (driver) le développement du code à produire, et non une préconception par analyse fonctionnelle.

D'où l'appellation Test-Driven Development.
On écrit du code qui appelle du code qui n'existe pas encore, et on fait des assertions dessus.

ça conduit et ça structure par les besoins et manières d'utiliser le code.

Comment code-t-on aujourd'hui ? : #TDD #CleanCode

Il s'agit avant tout de "faire parler le code".

Si vous ne comprenez pas l'intention de ce code rien qu'en comprenant son contexte, c'est que ce code est nul.

#Dev #Software #TDD #CleanCode

Je n'ai pas encore vraiment écrit de code de comportement réel.

MAIS j'ai déjà un test de comportement de ce que j'attends de mon code à coder, le truc réel à faire.

Et on voit bien que le code "parle" et dit ce qu'il a l'intention de faire et ce qu'il a l'intention de tester.

C'est du code simple et compréhensible.

#TDD #CleanCode

Et me voilà avec un code compact et expressif, testé et réalisé par itération :

Dernier raffinement : code expressif qui en devient un mini-DSL : "domain specific language".

Et maintenant le Composite raffiné suivant ce qui a été fait pour le Basic :

Le Service Interface Function Block va suivre mais pour lui c'est un peu différent.
Ce FB sert à connecter la logique à des choses infrastructurelles "réelles" : autrement dit à du code qui va taper sur des périphériques réels, par exemple un actuateur

Introducing the IEC 61499 AI Service Platform - Part 1 - UniversalAutomation.org

UniversalAutomation.org

#TDD #CleanCode

Et voilà le test unitaire complet qui ne fonctionne pas, mais qui existe et qui définit entièrement ce qu'on attend du système :

#TDD #IEC61499

Et voilà le code généré par Roslyn.
Pas fini mais en bonne voie.