2010-12-14 17 views
0

1)それらのメソッドのセットでモジュールに実装する必要がありますか? 2)すべてのメソッドが特定のビジネスルールをテストする特別なクラスにそれらを実装する必要がありますか?ビジネスルールはどこに実装する必要がありますか?

また、この問題に関する良い参考文献をお勧めしますか?

UPDATE:

「ビジネス・ルールは、ビジネス、会社、または会社のルールがあることを定義したり、ビジネスのいくつかの側面を拘束し、常にtrueまたはfalseに解決されたルールである。」Wikipedia definition.

答えて

3

まず、「ビジネスルール」とは何かを明確に定義する必要があります。候補者は多いです:

  1. あなたの製品についての情報です。
  2. 時間、場所、顧客、製品、月の相(月の相場)、季節などに依存する販売に関するルール
  3. ユーザーの役割(通常の顧客と優先する顧客など)
  4. ルールは、あなたの周りには、正確に何を意味する
  5. 買掛金と売掛金GAAP規則

を占めますか?あなたがそれを許すならば、それはかなり曖昧な質問です。

あなたは彼らがあなたのコード内のどこに行くにような選択肢がたくさんある:レーテ・ルール・エンジンのデータベース

  • 式に保存されている駆動

    1. データを、。
    2. OOを書く場合、中間層クラス。
    3. 宣言型プログラミングを行っている場合は、プロパティまたは構成ファイル。
    4. 実行可能なルールはJavaScriptのように表現されます。
    5. ERP、MRP、A/P、およびA/Rシステムでは、
    6. あなたのアプリが一緒に作ってくれるWebサービスがあります。

    開いている問題がありますか?あなたの質問は、明確に定義された問題があり、シンプルですっきりした答えを期待することを意味します。真実は広い話題だということです。

  • +0

    実際、あなたは私に、さまざまな可能性を知るための重要な一歩を見せてくれました...それは、私が期待していたものの一部です! – JPCF

    +0

    私は今ウィキペディアで述べられている定義を使用しています...多分あなたはそれに応じてあなたの答えを更新することができます。 – JPCF

    +0

    "ビジネスルールは企業、企業、または企業のルールです" - 同音異義語以上のもの。それがWikipediaで何を意味しているのか見てください。 – duffymo

    1

    これは非常に一般的な質問と答えるのは難しいです - しかし、私はあなたの開発の中心でビジネスルールを維持する方法としてBehaviour Driven Developmentを見てみましょうと言うだろう。

    1

    MVCのパラダイム - モデルビューコントローラを調べることをお勧めします。ビューにはビジネスロジックは存在しないはずです。すべてがモデルに含まれている必要があります。

    +0

    Off focused answer。私はViewレイヤーについては話していません。私はビジネスルールを検証しなければならないビジネスコンポーネントについてのみ尋ねています.... – JPCF

    +0

    "焦点が合っていない"かどうかは分かりません。そのパラダイムは、 "ビジネスコンポーネント"が自己完結型モデルであり、テストするのが簡単です。 – Arafangion

    +2

    私の見解では、あまりにも単純です。おもちゃではないシステムは、ほんの一握りの物にすごく揃っていることはめったにありません。 – duffymo

    1

    答えは、顧客がルールに変更を加える必要があり

    • のように、複数の要因に依存しますか?
    • ルールの変更頻度
    • アプリケーションを再起動せずに更新されたルールを展開する必要がありますか?

    答えが、その後の上にそれらのすべてにYESであれば、ルールエンジン(Droolsの、ILOGなど)は、あなたの答えはNO、その後代替にすることにある場合は、あなたのルール

    を実装しないために探しているものですそれは独立して、テストしてカスタマイズおよび

  • 名ウェイのビジネスはそれを言及したルール(ユビキタス言語)
  • を更新することができるように独自のクラスに心の中で以下の

    • カプセル化1ビジネスルールを維持するコードのルールをモデル化
    • 指定パターン(domain driven design)について学んでください。ルールを表現するこの方法は非常に直感的で明示的だと思います。

    たとえば、 here

    EligibleForDiscountSpecification isEligibleForDiscountRule = new EligibleForDiscountSpecification(); 
    isEligibleForDiscountRule .IsSatisfiedBy(customer) 
    
    +1

    仕様パターンはいつ使用すると思いますか?それを使用しない場合は? – JPCF

    1

    ビジネスルールのベストプラクティスでは、ルールをプラガブルコンポーネントにする必要があります。最小限のアプローチは、専用のライブラリでそれらをコーディングし、Dependency Injection、またはReflection ...を続けることです。おそらくContracts Driven Developmentについて調査し、開始するにはwww.businessrulesgroup.org/brmanifesto.htmを見てください。

    関連する問題