職場やオンラインでビジネスロジックについて多くの人が話しているのを聞いたことがあり、このサイトに関するいくつかの質問を読んだことがありますが、この用語はまだあまり意味がありません。たとえば、私がよく見かける(言い換え)ステートメントは次のとおりです。
「ビジネスロジックは、実際のビジネスルールをエンコードするプログラムの一部です。」私が読んだ定義のほとんどは、このような円形のものです。
「ビジネスロジックは、特定のアプリケーションに固有のすべてです。」「特定のアプリケーションはビジネスロジック以外の何物でもない」と、これがどのように異なるかはわかりません。したがって、質問のタイトル。
「データアクセス層の上とGUI層の下にビジネスロジック層が必要です。」私が書いたコードでは、データベースアクセサーはアクセスするデータを知る必要があり、UIコードはそれを正しく表示するために表示するものについて多くを知る必要があり、その間に実際に行うことは何もありませんクライアントとサーバー間でデータの塊を渡すこと以外の2つの場所。それでは、実際にビジネスロジックレイヤーに入るものは何でしょうか?
「ビジネスロジックはプレゼンテーションロジックから分離する必要があります。」私たちが受け取る機能要求のほとんどは、ビジネス上の理由でプレゼンテーションロジックを変更することです。ビジネスルールの1つが、デフォルトで32番目の表記で米国国債の価格を表示する場合(ユーザーに構成するためのUIも提供します)、プレゼンテーションロジックは、このルールが完全に実装されていない場合、少なくとも存在することを知る必要があります。また、UXデザインの主要な部分は、ユーザーがソフトウェアが実装しようとしているビジネスルールを理解するのを支援しているようです。
実際にビジネスロジックのみを行うチームに所属していて、非ビジネスロジックはすべて他のチームによって実行されている可能性はありますか?または、個別のエンティティとしての「ビジネスロジック」の概念全体は、特定のアプリケーションまたはアーキテクチャでのみ機能しますか?
答えを具体的にするために:ドミノのピザアプリを再実装する必要があると仮定します。ビジネスロジックとは何ですか?また、そのアプリの非ビジネスロジックとは何ですか?そして、ピザ情報のほとんどがデータアクセス層とプレゼンテーション層に流出することなく、ピザの注文ビジネスロジックを独自のコードの「層」に配置するにはどうすればよいでしょうか。
更新:私のチームはおそらく90%のUIコードを実行しており、ビジネスロジックと呼ばれるものの大部分(すべてではない)が他のチームまたは企業から来ているという結論に達しました。基本的に、私たちのアプリケーションは監視用です財務データ、およびほとんどすべての機能は、ユーザーが表示するデータと表示方法をカスタマイズする方法です。売買は行われていません(ただし、当社の他のアプリと少し統合しています)が、実際のデータは外部ソースの負荷によって提供されます。しかし、ユーザーは自分の「モニター」のコピーを他のユーザーに送信するなどのことを許可しているので、私たちがそれをどのように処理するかの詳細は、おそらくビジネスロジックとみなされます。実際には、現在バックエンドコードの一部と通信するモバイルアプリがあり、フロントエンドコードのどの部分を理想的な世界(基本的には準MVCのM)でUIと共有したいかを正確に知っています。それが私たちにとってのBLLだと思います。
user61852の答えは、「ビジネスロジック」が何を参照し、何を参照していないかについて、より具体的な理解を与えてくれたので受け入れています。