La Conception Pilotée par le Domaine réalise un travail important pour encourager les développeurs à créer un modèle de domaine et un langage omniprésent, mais Debasish Ghosh déclare dans un billet de journal à propos des modèles fonctionnels dans la modélisation de domaine, que tenter d'implémenter les concepts DDD en utilisant les principes orientés objet avec un état et un comportement génère souvent un modèle mutable confus.
Debasish, membre senior de l'ACM et auteur de DSLs in Action, soutient qu'un modèle peut être riche dans le sens où tous les concepts liés à une abstraction de domaine spécifique sont situés dans une classe mais que cela rend également la classe plus fragile avec un focus local plutôt que global, de sorte que la composition de toutes les abstractions du domaine peuvent rendre celui-ci trop pollué avec le code uniquement requis pour résoudre les décalages d'impédance entre les limites des classes.
Dans son argumentation, il se réfère à Dean Wampler qui a récemment déclaré que les principes de programmation fonctionnelle peuvent aider à améliorer la conception pilotée par le domaine. Dean proclame que "les modèles devraient être anémiques", encourageant une pratique par laquelle les objets du domaine possèdent uniquement un état et déplaçant le comportement dans des fonctions autonomes.
Une autre déclaration que Debasish réfute est que le regroupement de l'état et du comportement dans une classe augmente l'encapsulation. Au lieu de cela, il pense que la mise en place de comportements de domaine comme des fonctions autonomes conduit à une meilleure modularisation et à une réalisation du modèle de domaine conforme aux principes du DDD. Tous les comportements du domaine sont alors modélisés comme des fonctions dans un module représentant l'agrégat.
Il poursuit avec un exemple de ses billets précédents où il implémentait les modèles DDD de Spécification et d'Agrégat à l'aide des principes de programmation fonctionnelle, en utilisant à présent les modèles fonctionnels et les fonctions comme briques de base pour construire des comportements qui modélisent le langage omniprésent du domaine. Debasish prétend que l'un des principes de DDD est de relever le vocabulaire du modèle de domaine dans votre implémentation de telle sorte que la fonctionnalité devienne apparente durant tout le cycle de vie du système.
Dean Wampler a également délivré une présentation sur un sujet similaire à la conférence React en avril sur les paradigmes de langage et la conception réactive.