質問
私はアートの利用のメリットルールエンジンなどの理由で、使っていただくか、リストの理由を利用するべきではありません、ルールエンジン
最高いです:
ルールエンジンは本当に扱うワークフローやプロセス 死刑執行もなワークフローエンジンやプロセス管理ツール 設計だ。
その他の大きな理由は利用するべきではありません。
解決
私は非常に神経質。ルールエンジンは、ルールを維持することを期待して、企業の中央に座っシングルトンである場合によく起こりますDRY には、それらを必要とする多くのアプリケーションにそれらにアクセスできるようになります。私は、誰もがその多くのルールでは、Reteルールエンジンが十分に理解されていることを私に教えて無視するでしょう。私は、競合が存在しないことを保証するためにチェックすることができます任意のツールを認識していないよ。
私は小さなそれらを保つために、ルール・セットを分割することは良いオプションだと思います。側面は、多くのオブジェクトの間で設定され、共通のルールを共有するための方法することができます。
私は可能な限ります。
単純、より多くのデータが駆動型のアプローチを好みます他のヒント
ったりとした2例からの個人体験の場を用ルールエンジンが良くなかったかの支援:-
- 従来のプロだから、なくてはならないルールファイルのプロジェクトを使用Drools)が含まれる多くのjavaコードを含むループ、機能等彼らは、本質的にはjavaファイルの行為としてルールファイルです。そして、建築家た推論のためのデザイン思ったが、"ルールな目的を維持することができ事業利用者"といいます
レッスン:まれていることもわかっていビジネスルール"の理由を使用しないルールできない場合の設計が可能なシステムが容易な維持管理に関わる事業。
- 別な場合のプロジェクトを使用ルールが要求した不確定に関わる変更がする。開発チームのソリューションした利用規則などに幅広く避け頻繁にコードを展開す.
レッスン:の要件が変更に多くの初期リリースに変更とを保証するものではなく、ま使用。利用規程の事業の変更がなくなります。例:-ソフトウェアがあなたの税金が変更として、毎年の税法令の変更や利用ルールは素晴らしいアイデアである"とのリリース1.0のウェブアプリの変更が多いとしてユーザーを特定して新しい条件が安定します。使用しないルールの代替としてのコードに展開している。
私の大ファンでのビジネスルールエンジンでできるく生活がより簡単になりますとプログラマを交換してください。最初の経験は私がデータウェアハウスプロジェクトを探保管手続を含む複雑なケース構造を伸ば、全ページ。悪夢のようなデバッグでしたかのロジック用など長い場合の構造を決定する場合は、重なっている間にルールをルール1ページコードからページ5です。全体とした300名以上のようなルールに埋め込まれます。
き届いた新しい開発要件に、もう会計先、事処理3000名以上のルールだと思っていった。そのできないかなぁ、とおもって試作るその後の母体となるか現在のカスタムのビジネスルールエンジンに対応できるすべてのSQL標準です。最初にしてきましたエクセルとしてオーサリングツール、その後、おASP.net 申請のためのビジネスユーザー定義し、独自のビジネスルールの必要がなく、書込みコードです。現在のシステムの動作は、非常に少数のバグを含む7,000台以上のルールの計算本会計ます。とは思わないようなシナリオはできるだけでハード符号といいます。のユーザーにも嬉しいことを定義することができ独自のルールになってそのボトルネックです。
まだ限界があるようなアプローチ:
- が必要になりの企業や機関で活躍するビジネスユーザーによる優れた理解を当社の事業です。
- により著作業全体を検索システム 当社の場合、データウェアハウス)を明らかにするため,すべてのハードコーディング 条件を意味するルールで取り組むことが求められている ビルエンジンです。今も大切にすること 初期のテンプレートを完全に理解できるビジネスユーザー.
- 必要なものに使うアプリケーションルールオーサリング、 アルゴリズム検出のための重複する業務ルールが実装されています。ま大きな混乱がないを理解しなくなっ果について取得します。きいバグを修正汎用などのコンポーネントカスタムのビジネスルールエンジンでは非常に困難となるデバッグの要請に応える豊富な試験を確認するもの前でも仕事です。
詳細はこのトピックでポストにめましょう: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
全体的に最大の利点のビジネス-トラストによるルールエンジンでのユーザーにバック制御のビジネスルール定義およびオーサリングする必要はなく、行かないのでそれはその修正が必要ない。また、作業にかかる負荷が軽減しい開発チームに集中できる建物もあります。
声で
ニコラエ-
私は「両刃の剣」であると気づいた1 poitはあります:
非技術スタッフの手の中にロジックを置く
あなたが非技術的な側面上の1人のまたは2つの学際的な天才を持っているとき、私は、この作品は素晴らしい見てきましたが、私はまた、肥大化につながるtechnicityの欠如、より多くのバグ、および一般4Xでの開発/メンテナンスを見てきましたコストます。
このように、あなたは真剣にあなたのユーザーベースを考慮する必要があります。
私はアレックスPapadimoulisの記事は非常に洞察力に富んだと思った: http://thedailywtf.com/articles/soft_coding.aspx の
これは、包括的ではないのですが、彼はいくつかの良い点を持っています。
GREATルールエンジンを使用しないときの記事...(ならびに1つを使用する)....
http://www.jessrules.com/guidelines.shtmlする
あなただけの結果を得るために、任意の順序で、一度適用される規則の線形セットを持っている場合は、別のオプションは、グルーヴィーなインターフェイスを作成し、開発者が記述しており、これらの新しいルールを展開することです。利点は、あなたがすべてのアプリのデータになく、効率的にアクセスを持っているので、通常、あなたはHibernateセッションまたはJDBCセッションだけでなく、任意のパラメータを渡すことになるので、それは意地悪く高速であることです。実際のリストでは、実際にシステムを遅くすることができます/マッチングをループの多くが存在することができます.....それは(はい、私たちのグルーヴィーなルールが中に配備されたルールエンジンを回避して、動的に展開することができるようにする別の方法ですデータベースと、私たちは)それのいずれかのルールを満たしたか、それはしませんでした....何の再帰がありませんでした。それはああ.....ちょうど別のオプションであり、もう一つの利点は、着信開発者のためのルール構文を学習されていません。彼らはいくつかのグルーヴィーを学ばなければならないが、学習曲線がはるかに優れているので、それは、Javaに非常に近います。
それは本当にあなたの状況に依存します。ルールエンジンは、その場所を持っているし、あなたがルールエンジンを必要としない非常に単純化された状況のために動的に展開することがプロジェクトのルールを持っている場合は、上記のちょうど別のオプションです。
は基本的に。あなたは、単純なルールセットを持っているし、代わりにグルーヴィーなインタフェースを持つことができるかどうか.....あなたのチームに参加し、同じように動的にデプロイして、新しい開発者が速くDroolsの言語よりも、それを学ぶことができるルールエンジンを使用していない(それはです私の意見)
私の経験は、ルールエンジンを作る場合にtrue:
- 定義お困りのドメイン
- 高品質(好ましくは自動データへのご入力
- アクセス対象分野の専門家
- ソフトウェア開発経験の創出エキスパートシステム
場合これらの特性、行方不明だが、ルールエンジンの作品は、もっとも1、私は問題を引き起こします。
これは確かに良いスタートです。ルールエンジンと他の事は、いくつかのものは、よく理解していることを決定論的である、とストレートフォワード。給与の源泉徴収はそのような(または可能に使用する)です。あなたがをは、ルールエンジンによって解決されるだろうルールとして、それを表現することができますが、あなたは、値のかなり単純なテーブルと同じ規則を表現することができます。
あなたが永続的なデータを持つことになり、長期的なプロセスを表現しているときにだから、ワークフローエンジンが良いです。ルールエンジンは、同様のことを行うことができますが、追加の複雑さの多くを行う必要があります。
あなたは知識ベースを複雑で検索する必要があるしているとき、ルールエンジンが良いです。ルールエンジンは、複雑な問題を解決することができ、および状況の変化に迅速に適応することができますが、ベースの実装上の複雑さの多くを課しています。
多くの決定アルゴリズムは、実際のルールエンジンによって暗黙の複雑させずに、簡単なテーブル駆動型のプログラムとして表現するのに十分なシンプルされます。
そのためビジネスルールエンジンのように Droolsとしてオープンソース または 商業ルールエンジン などLiveRules.
- るときは、多数の事業の方針である揮発性自然の中で非常にハードを維持するために、一部のコア技術です。
- ルールのエンジンの大きな柔軟性の枠組みやすい変化に展開している。
- ルールエンジンの使用をしないものが必要な場合に使用していく方針に変化は避けられます。
:
私は本当にのようないくつかのポイントを理解していません
A)ビジネスの人々は非常によくビジネスを理解する必要がある、または、
b)は、ビジネスの人々の意見の相違は、ルールを知っている必要はありません。
私にとっては、ちょうどBREに触れる人として、BREの利点はそうので、それは変更の適応に焦点を当てています、システムは、ビジネスの変化に適応できるように呼ばれている。
:時間xに設定したルールが原因の時間Yに設定したルールと異なる場合、それは問題ではありません
A)ビジネスの人々は、ビジネスを理解し、またはしていない。
b)は、ビジネスの人々はルールを理解していませんか?