ルールエンジンと呼ばれるものを使用するプロジェクトを監査しています。つまり、アプリケーションコードからビジネスロジックを外部化する方法です。
この概念は私にとってまったく新しいものであり、私はそれについてかなり懐疑的です。過去数年間、人々が貧血ドメインモデルについて話しているのを聞いた後、私はルールエンジンアプローチに疑問を投げかけています。私には、それらはドメインモデルを弱めるための素晴らしい方法のように思えます。たとえば、RulesEngineと対話するJavaWebアプリケーションを実行しているとします。次に、同じドメインに基づくAndroidアプリが必要だと判断しました。AndroidアプリがRulesEngineとも相互作用するようにしたい場合を除いて、すでに作成されているビジネスロジックを見逃す必要があります。
私はまだそれらの経験がないので、好奇心だけで、ルールエンジンを使用することの長所と短所について聞いて興味がありましたか?私が考えることができる唯一の利点は、ビジネスルールを変更するためだけにアプリケーション全体を再構築する必要がないということです(しかし、実際には、どれだけのアプリが実際にその数の変更を持っていますか?)。しかし、ルールエンジンを使用してその問題を解決することは、ショットガンの傷にバンドエイドをかけるようなものです。
更新-これを書いた後、神自身、マーティン・ファウラーは、ルールエンジンの使用についてブログに書いています。