私はアプリケーションアーキテクチャをよりよく整理しようとしているので、いくつか読んでいますが、「ビジネスロジック」および「ビジネスルール」への参照に遭遇し続けています。これらが実際に何であるか私は本当に理解したことがありません。私は通常、ユースケースと「ユーザーストーリー」にのみ焦点を当てています。誰かがビジネスロジックとビジネスルールとは何か、およびそれらがユースケースとどのように関連しているかを説明できますか?
私が見つけたすべての定義は、ソフトウェア開発ではなく、実際のビジネスに関係しているようです。
ソフトウェアは常にビジネスを代表するものではないので、ソフトウェアは常にビジネスロジックを備えているわけではないということですか?または...
人々は「ビジネスルール」と「ビジネスロジック」という用語を使用して、アプリケーションに固有のアプリケーションの部分を指し、ソフトウェアで役立つ可能性のある一般的な機能ではなく、物事がどのように機能するかというコアの振る舞いを表しますアプリケーションのインフラストラクチャをサポートするために存在する別のクライアント/ビジネス/顧客ベースまたはコード用に記述されています。
多くの場合、ビジネスロジックは顧客のニーズが変わると変更される可能性があるため、必要に応じて変更できるように、それを特別な場所/階層に配置します。
この用語はそうでないことを意味しているようですが、非ビジネスソフトウェアにもビジネスロジックがあります。たとえば、「ユーザーがxyzを実行すると、アプリケーションは何かを検証する必要がある」というルールは、ビジネスルールとして分類できます。
解析/処理/データアクセスなどのユーティリティコードは、ビジネスロジックとは見なされません。
それは一種の曖昧な用語であり、異なるコンテキストの異なる人々にとって異なることを意味する可能性があります。それはのんびりする価値はありません。一般的な考え方は、アプリケーションを論理的な部分に分割することであり、それぞれが何か特定のものを担当します。これが正確にどのように行われるかは、経験と、適切に設計された大規模アプリケーションでの作業から学ぶことです。しかし、厳格で迅速なルールはありません。 3人の優れた開発者に質問すると、6つの意見が得られます。
Wikipediaからの抜粋です。
これは、ビジネスの一部の側面を定義または制約し、常にtrueまたはfalseのいずれかに解決されるルールです。ビジネスルールは、ビジネス構造を表明するか、ビジネスの動作を制御または影響することを目的としています。ビジネスルールは、組織に適用される操作、定義、および制約を記述します。ビジネスルールは、組織内の人、プロセス、企業行動、およびコンピューティングシステムに適用でき、組織がその目標を達成するのを支援するために導入されます。
@aarongが言ったことに関して、ビジネスルールまたはビジネスロジックは、これを構成するために何らかの形のビジネスエンティティが必要であることを実際に意味するものではありません。
これは、アプリケーションが実行するはずのプロセスの制約または定義を意味します。これらのルールは、アプリケーションの動作とその動作を表明することを目的としています。
たとえば、このロジックをATMマシンに配置してみましょう。
ビジネスルールは次のとおりです。
または、Facebookなどのより一般的な場所で:
そのようなもの。
ビジネスルールは、問題のドメインに存在し、そのドメインのプロセスを定義または制限するルールです。
これらはmayがソフトウェアによって適用されるルールです。
ユースケースは、実際にビジネスルールを遵守して文書化したものです。
例:問題のあるドメインが処方している場合:
ビジネスルールは、必ずしもコンピュータアプリケーションに関連付けられているわけではありません。
本でこの用語を使用する場合、一般に「要件」と考えることができますが、要件にはビジネスルールだけではありません。