Moteur de règles - avantages et inconvénients

Je suis de la vérification d'un projet qui utilise ce qu'on appelle un Moteur De Règles. En bref, c'est un moyen d'externaliser la logique métier de l'application du code.

Ce concept est totalement nouveau pour moi et je suis assez sceptique à ce sujet. Après avoir entendu des personnes parler de Anémique Modèles De Domaine depuis quelques années, je suis en interrogeant le Moteur de Règles d'Approche. Pour moi, ils semblent comme un excellent moyen pour AFFAIBLIR un modèle de domaine. Par exemple dire que je suis en train de faire une java webapp de l'interaction avec un Moteur de Règles. Puis je décide d'avoir une application Android basée sur le même domaine. Sauf si je veux l'application Android pour interagir avec le Moteur de Règles, je vais devoir manquer quelle que soit la logique d'entreprise a été déjà écrit.

Que je n'ai pas d'expérience avec eux, juste de la curiosité, j'ai été intéressé d'entendre parler des avantages et des inconvénients à utiliser un Moteur de Règles? Le seul pro que je peux penser, c'est que vous n'avez pas besoin de reconstruire l'ensemble de votre Application il suffit de changer quelques affaires de la règle (mais vraiment, combien d'apps vraiment eu beaucoup de changements?). Mais à l'aide d'un Moteur de Règles pour résoudre ce problème sonne pour moi comme mettre un pansement sur un fusil de chasse de la plaie.

Mise à JOUR - depuis la rédaction de ce, le dieu lui-même, Martin Fowler, a blogué sur l'utilisation d'un moteur de Règles.

  • Vous êtes à la recherche dans des produits de tiers ou allez-vous rouler?
  • C'est un excellent article de Martin Fowler, merci!
  • vous avez raison, ils sont très anti-OO. Ils viennent d'un temps où OO n'était pas commun (qui explique en partie cela), mais oui, ils sont très désireux de travailler avec des dossiers/des objets de valeur qui sont "anémique" comme vous dites. Ce n'est pas nécessairement une mauvaise chose, mais c'est ce qu'il est. Si vous n'aimez pas que vous n'aimez pas la règle des moteurs.
  • Je voudrais également d'examiner si l'on veut vraiment le (chaînage avant) moteur de règle ou l'on veut réellement le point de vue sémantique claire (dans le sens de: au moins, on sait ce qu'ils calculent en premier lieu) de la logique des programmes de Prolog ou beaucoup plus simples Datalog (ou on peut aller plus raréfié des territoires et de prendre un coup d'oeil à l'Opération Logique). Si l'on veut réactivité ("chaque fois que quelque chose change dans la base de données, faire quelque chose, n'importe quoi!"), un coup d'oeil a un Tuplespace/Lindaspace de mise en œuvre liées à un bon vieux OO programmation en $PREFERRED_LANGUAGE pourrait être en vaut la peine.