Ich prüfe ein Projekt, das eine sogenannte Regel-Engine verwendet . Kurz gesagt, es ist eine Möglichkeit, Geschäftslogik aus Anwendungscode zu externalisieren.
Dieses Konzept ist für mich völlig neu und ich bin ziemlich skeptisch. Nachdem die Leute in den letzten Jahren über anämische Domänenmodelle gesprochen haben , stelle ich den Rules Engine-Ansatz in Frage. Für mich scheinen sie eine großartige Möglichkeit zu sein, ein Domain-Modell zu SCHWACHEN. Angenommen, ich mache eine Java-Webanwendung, die mit einer Rules Engine interagiert. Dann entscheide ich mich für eine Android-App, die auf derselben Domain basiert. Wenn ich nicht möchte, dass die Android-App auch mit der Rules Engine interagiert, muss ich auf die bereits geschriebene Geschäftslogik verzichten.
Da ich noch keine Erfahrung mit ihnen habe, nur Neugier, war ich interessiert zu erfahren, welche Vor- und Nachteile die Verwendung einer Rules Engine hat. Der einzige Vorteil, den ich mir vorstellen kann, ist, dass Sie nicht Ihre gesamte Anwendung neu erstellen müssen, um eine Geschäftsregel zu ändern (aber wie viele Apps haben wirklich so viele Änderungen?). Aber die Verwendung einer Rules Engine zur Lösung dieses Problems klingt für mich wie ein Pflaster über einer Schrotflintenwunde.
UPDATE - Seit dem Schreiben dieses Artikels hat der Gott selbst, Martin Fowler, über die Verwendung einer Regel-Engine gebloggt .