Équivalent de la conception pilotée par domaine pour les langages de programmation fonctionnels


10

J'aime vraiment l'idée de la conception basée sur le domaine, cependant, pendant que j'apprends Go, je me demande s'il y a l'équivalent de DDD qui vise un langage effectivement plus fonctionnel?

Réponses:


12

Il n'y a pas d'équivalent. DDD avait besoin d'un paradigme pour prendre en charge une réécriture fréquente dans un scénario de développement logiciel évolutif. La POO ressemblait à l'époque à la seule stratégie viable. Mais les langages fonctionnels peuvent également servir un tel scénario.

Vous voudrez peut-être jeter un œil à la vidéo de Greg Young sur DDD et la programmation fonctionnelle et à la vidéo de Patrik Fredriksson sur la mise en œuvre de DDD avec un langage fonctionnel comme Clojure


3

Je crois que DDD ne concerne pas la conception de la POO elle-même, mais plutôt la façon dont vous abordez l'ensemble du processus de développement. Le développement itératif, le langage omniprésent, la coopération étroite des experts commerciaux et des développeurs sont tous agnostiques en termes de langage et de paradigme.

La conception d'objets en DDD n'est pas quelque chose de nouveau. Les modèles décrits dans DDD existaient bien avant que DDD ne voit le monde. Les racines agrégées, le modèle de stratégie, les objets de valeur n'étaient que des éléments appropriés pour décrire la logique métier. Votre question devrait donc être plus comme "Comment exprimer la logique métier et persiste son état dans le langage fonctionnel". Vous recherchez probablement des modèles de conception pour les langages de programmation fonctionnels.


Ce que vous avez décrit est la première partie de DDD, mais la deuxième partie est la construction réelle des modèles de domaine. La deuxième partie est celle qui m'intéresse. Je ne sais pas exactement comment je modéliserais un domaine dans un langage fonctionnel (même s'il a des interfaces).
Matty
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.