問題タブ [business-rules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 動的なビジネス ルール
私は、ユーザーが実行時にドメイン固有のオブジェクトから独自のビジネス ルールを構築し、それらのルールをデータベースに保持してアプリケーションで使用できるインターフェイスを作成しています。これらのいくつかは複雑な述語であり、他のものはかなり複雑に見える関係でドメイン オブジェクトの組み合わせを必要とします。これまで、GoF、eval によるダイナミクス、および CodeDom について調べてきました。誰が何を使用すべきかについて提案がありますか?
c# - カスタムルールを使用した動的検証
私は.Net言語を4年間使用しています。私は、WCF、Webアプリケーション用のASP.NET、およびWindowsアプリケーション用のC#を使用して、3層および5層のアプリケーションを開発しています。プロジェクトを開始するたびに、ビジネスルールと検証が問題になります。
カスタム検証ルール(ボタンクリックイベント、ページの読み込み、またはクラス内のセッター/ゲッター)をどこに配置する必要がありますか?
プロジェクトが大きく、5文字ではなく7文字にする必要があるフィールドがある場合-プロジェクト全体(またはビジネスクラスプロジェクト)を再構築する必要があるのはなぜですか?
カスタムルールを含むファイルがある場合、変更が必要になったときに、新しいルールをそのファイルに配置するだけでよいと思います。この目的のためにXMLベースのファイルを提供するインターネット上の記事をいくつか読んだことがありますが、これには問題があるようです。
- Intellisenseがなく、XMLファイルのエラーを見つけるのは非常に困難です
- カスタムXMLパーサーを作成する必要があります
- この方法は多数のキャストを必要とするため、非常に時間がかかります
私の質問:
カスタムルールを使用して動的検証を行うために、.NETメソッド(リフレクション、式ツリー、ラムダ式、ダイナミクス、DLLのランタイム作成など)を使用するデザインパターンまたはその他のものはありますか?
編集1)
属性はどうですか?Reflection to Custom検証でそれらを使用できますか?このアプローチで、別のプロパティ(フォーム例P1はP2 + 1である必要があります)に従ってプロパティを検証できますか?
regex - 正規表現と技術者以外のユーザー
とすれば:
- 変更可能な Key-Value データがいくつかあります
- 変更は、データにフィルターを適用することによって行われます。何が変更されるかを制御するフィルターは、非技術者によって作成されます
- フィルタは正規表現を使用して設定されます。フィルターの一部として記述されるルールの例としては、「キーが正規表現に一致する場合、値を他の値に置き換える」などがあります。
どのようにしますか:
正規表現を作成できないビジネスマンがフィルターを作成する場合、簡単に正規表現に変換できる入力をどのような形式で提出してもらいますか?
business-rules - エンタープライズレベルのルールエンジンを実装する際の上位5つの課題は何ですか?
私は自分の知識に従ってリストを編集しましたが、このコミュニティの入力を使用してリストを充実させ、優先順位を付けたいと思います。一元化されたルールリポジトリ自体については議論の余地があることは理解していますが、別の質問をすることもできます。
- ルールを作成するためのプラットフォームを使用するビジネスユーザーの適応性[定義、分類、ルールリポジトリに配置される可能性のあるルールの決定]
- さまざまなアプリケーションからのルールの呼び出しと消費のしやすさ
- ルールの移植性-[RIF(ルール交換形式)の重要性?]
- ルールの保守–BRMS[ビジネスルール管理システム]
- ルールエンジンのパフォーマンス– [どれだけ、どれだけ速く、どれだけ確実に]
drools - Drools コレクション効率
同じタイプのコレクションが 2 つあり、コレクション内の各オブジェクトは ID によってキーになっています。私の目標は、両方のコレクションで同じオブジェクトを見つけて、フィールドを互いに比較することです。それらが同じフィールドでない場合は、違いを保存します。
私の問題はパフォーマンスです。ルールごとに、同じオブジェクトのコレクションを再スキャンします。オブジェクトが一致した場合、コレクション内のアイテムを複数回見つける代わりに、すべてのフィールド検証を実行する方法はありますか?
ファクトコード:
よだれコード:
c# - 問題を抱えて DecimalAboveThresholdAttribute を実装しようとしています
小数で動作することを除いて、IntegerAboveThresholdAttribute に似たものを実装しようとしています。
これは、BusinessException として使用する私の実装です。
ただし、属性は定数式、typeof 式、または属性パラメーター型の配列作成式である必要があるというエラーが表示されます。これを修正できるかどうか疑問に思っていましたが、そうでない場合、同様のことを行うことは可能ですか?
DecimalAboveThresholdAttribute のソース コードは次のとおりです。
}
また、DateTimes でもこれを行うことができるかどうかも知りたいです。
c# - 評価エンジンで「TestMaker」(質問と応答)アプリケーションを構築するためのヒントを探しています
私は新しいプロジェクトに取り組んでいます。私の最良の例えは、心理評価テストの作成者です。
側面#1。 エンドビジネス ユーザーはテスト問題を作成する必要があります。質問タイプあり。該当する場合は、質問に対する可能な回答。
例:
そのため、質問、質問の種類、および一部の質問については可能な回答を作成できる必要があります。
ここ:
1番は「真か偽か」の既知のタイプです。
番号 2 は、"単一応答/複数選択" の既知のタイプであり、エンド ビジネス ユーザーが可能な応答を作成します。
3 番は「整数」の既知の型です。エンドユーザー (評価を受ける人) は、基本的に任意の整数値を入力できます。
数字の 4 は、"10 進数" の既知の型です。整数と同じです。
側面#2。 エンド ビジネス ユーザーは、ユーザーの応答を評価する必要があります。そして、一連の応答に何らかのスカラー値を割り当てます。
例:
誰かが応答した場合:
一部の精神科医の専門家は、誰かが上記の回答で回答した場合、通常よりもうつ病のリスクが 85% 高いと考えています。(85% は、エンドビジネス ユーザー (精神科医) がパラメーターとして入力できる数値です。
したがって、側面 2 は、誰かの応答を実行し、結果を決定することです。
「応答グリッド」は、優先順位の順序で (一部またはすべての) 可能性を調べ、すべての条件が (1 つの行で) 満たされた後、結果で終了するように設定する必要があります。
このような:
一致が見つかったら、パーセンテージで終了します。一致が見つからない場合は、次のルールに進みます。
また、この精神評価のモック例を実行すると、すべての順列を定義する必要はありません。心理評価の問題の多くは実際には使われておらず、ただの「ふざけたもの」です。そのため、上記のグリッドでは、意図的に質問 4 を省略しています。結果には関係ありません。
「この人はこれを真剣に受け止めていましたか?」ということもあります。評価グリッド:
(靴のサイズが 20 以上でポケットに大金が入っている可能性は非常に低いため、心理テストを真剣に受けていない可能性があります。)
ルールが見つからない場合 (このモックアップではなく、実際のアプリケーションで)、例外をスローするか、単に気にしません。デフォルトまたはフォールスルー ルールは必要ありません。上記の赤と黄は「気になる」好きな色です。好きな色が黒または白の場合、うつ病のリスク要因とは関係ありません。
過去にビジネス ルール エンジンを使用したことがあります。(例: InRule)。それらは非常に高価であり、予算にはありません。
BizTalk ビジネス ルール フレームワークは可能性があります。望ましくありませんが、可能です。
ルールエンジンに関する私の問題は、「語彙」(ビジネスルールエンジンの経験が限られていることです)が静的プロパティを持つオブジェクトに基づいていることです。
これにより、ビジネス ルールを簡単に作成できます。
しかし、私の状況では、テストは (動的) 質問と (動的) 応答で構成されており、事前に定義されたプロパティではありません。
だから私はこれをやってのける方法を調査するためのいくつかのアイデアを探していると思います.
「TestMaker」アプリケーションをかなり迅速に構築できることはわかっています。
最大の問題は、質問と (可能な応答) を「評価ルール」に統合することです。
ヒントをありがとう。
テクノロジー: DotNet 4.0 Framework Sql Server 2008 バックエンド データベース VS2010 Pro、C#
java - 別のルール ファイルからルールをインポートするルール ファイルを作成できますか?
Drools ルールまたは関数を別の Drools ルール ファイルにインポートするにはどうすればよいですか?
drools - マップ内の Drools ルール間でデータを共有するには?
事実として受け入れMap()
てから、このマップに多くの要素を設定するルールがあります。他のルールを実行するときに、このマップを別の場所で使用できるようにしたいと考えています。Drools のグローバルについて読みましたが、この目的には使用しないようです。現在、このマップを Java クラスのプライベート プロパティとして保持しているため、すべてのデータを Web アプリケーション コンテキストに保持できますが、これによりメモリ フットプリントが増加します。奇妙に聞こえるかもしれませんが、Drools ルールと Java 静的フィールドの類似点はありますか?
前もって感謝します!