web-dev-qa-db-ja.com

ドメインロジックとは何ですか?

ドメインロジックとは何ですか?ドメインロジックのウィキペディアページは、ビジネスロジックにリダイレクトします。それらは同じものですか、そうでない場合、それらはどのように異なりますか?

43
Sydius

ドメインは、モデル化しているものです。

ビジネス上の問題をモデル化している場合、それらは同じものです。

他の何か、たとえば物理学をモデル化している場合、システムにはおそらくビジネスロジックはありませんが、物理学の部分は依然としてドメインロジックです。

36
jakber

ドメインは、アプリケーションが存在する世界です。したがって、たとえばフライト予約システムで作業している場合、アプリケーションドメインはフライト予約になります。

一方、ビジネスロジックは、アプリケーションドメイン全体のより個別のブロックです。ビジネスロジックは通常、1つの特定のビジネスプロセスを実行するために構築されたコードのセクションです。したがって、予約を取るためのビジネスロジックがあります。ビジネスロジックのもう1つのビットは、キャンセルされたチケットを払い戻すコードです。

ビジネスプロセスをサポートするオブジェクトがビジネスオブジェクトになります。

37
Agile Noob

ビジネスロジックは目的論的(目的を達成する方法に関係する)であり、ドメインロジックは存在論的(存在するもの、または推論に使用されるオブジェクトモデル)です。

11
VLostBoy

シナリオを取り上げましょう。

あなたにはXYZ拘束のクライアントがいて、彼はあなたに彼のシステムをオンラインにすることを望んでいます。
ユーザーがオンラインで注文、追跡、支払いなどを行える場所。

クライアントの観点からは、このシステムはビジネスアイデアと呼ばれますが、「オンラインで注文する」はビジネスプロセスの1つであると言われ、ユーザーがオンラインで注文する場合、クライアントはユーザーの詳細ごとに、画面などに表示したいビジネスロジック

次に、システムが彼のすべてのビジネスプロセス、または問題領域またはアプリケーションドメインと言われる完全なビジネスアイデアを達成できるように、彼のビジネスアイデアを自分の視点にモデル化します。 =またはアプリケーションのドメイン

ここで、最初にすべてのビジネスプロセスを特定します。そして、ビジネスプロセスを達成するためのエンティティまたはオブジェクトを特定します。 Business ObectまたはDomain Objectと言われるオブジェクト、およびDomain Logicと言われるplaceOrderのようなビジネスプロセスを実装するメソッドまたはロジック。

つまり、ビジネスロジックはクライアントが望んでいるものです。なぜなら、クライアントのビジネスドメインにあり、ドメインロジックはそれを実装する方法だからです。それはあなたのアプリケーションドメインにあるからです。

4
palash140

ドメインロジックは、問題のドメインに適用されます。 「注文処理」。ドメインロジックは、操作するエンティティ(オブジェクトモデル)とそれらの関係に関するものです。

ビジネスロジックには、コンテキストに固有のルールが含まれています。 「グループXの顧客からの注文は、金額Zを超える場合は割引Yを使用して処理されます」。ビジネス「ロジック」とは、ビジネス(またはプログラムを使用する顧客のビジネス)に関する事実をエンコードすることです。

3
mfx

1つの特定の分野/専門分野に固有のビジネスロジック。

3
Brian Knoblauch

ビジネスロジックは次のことに関連していると思います。

ドメイン内のエンティティ間のロジックまたは関連付け。

では、生徒はクラスや生徒とどのように関係していますか。新しいクラスはどのように作成され、どのようにそのクラスに学生を登録しますか

ビジネスルール、結果、サービス、イベント、プロセス、計算、変換、および関連するデータ操作/作成の決定に関係するすべて。

ドメインロジックの構造化に役立つ優れた本や教師を見つけるのは難しいと思いました。ドメインを構築するのは簡単です。しかし、ドメインロジックは、誰も行きたくない場所のように思えます。

1
5x1llz

私のドメインは製薬です。コンパートメント、線量、微分方程式、および統計を扱います。それを私の「ビジネス」と呼びたいのなら、それは「ビジネスロジック」だと思います。

0
Mike Dunlavey
  • ビジネスロジックは、ビューとモデル(UIとデータ)間の有効な相互作用の調整に関係しています。
  • ドメインロジックは、アプリの両側(クライアントとサーバー)で内部的に一貫したモデル表現を維持することを目的としています。
0
Aaron