web-dev-qa-db-ja.com

データ駆動型とイベント駆動型のモデル/アーキテクチャ?

用語を聞いたData DrivenおよびEvent Driven過去のさまざまな人々からのモデル。私はグーグルをしましたが、両方とも私に似ているので、これらの用語はまだ私にはあいまいです

データ駆動型プログラミングは、データ自体がプログラムのフローを制御するプログラミングモデルです(プログラムロジックではありません)。イベント駆動型プログラミングの場合、イベントではありません。データ自体がプログラムのフローを制御します。

鉱山ごとの理解イベントもデータです。たとえば、従業員ベースのWebアプリケーションの場合-ユーザーが[従業員の作成]ボタンをクリックすると、ここでのイベントは従業員の作成(これも一種のデータのみ)であり、データは従業員関連の情報です。

今度はサーバーで最初にプログラムの流れを決定するイベントになり、次にデータ(従業員関連情報)も実行の流れを制御します。たとえば、正社員の異なる方法が実行される場合と一時的な場合は異なる方法が実行されます。

では、すべてがデータ駆動型アーキテクチャではないのでしょうか。いいえの場合、それらの違いは何ですか? Webベースの例が役立ちます

5
emilly

データ自体がプログラムのフローを制御します(プログラムロジックではありません)

この文脈での「フロー」とは何かを完全には理解していないと思います。フローはロジックそのものです。たとえば、引数にA、B、Cの順に実行するメソッドを実行している場合、ロジックは「Apply A、B、C」になり、アクションA、B、Cを抽出して分離すると、フローは同じになります。メソッド。したがって、フローとロジックは同義語です。

データ駆動プログラミングは、いくつかの一般的なコードが存在することを意味します。ビジネスロジックは含まれず、フローを制御しません。これは、データを読み取って処理し、結果を出力するための単なるツールです。フローとロジックを制御するのはデータそのものです。したがって、ビジネスロジックを変更する(文字通りプログラムの結果を変更する)場合は、コードではなくデータを変更します。
そして、あなたのコードは、まあ、入力データに応じてコマンドを実行する一種のパイプラインです。このようなコードは、JavaScriptの eval 関数のように考えることができます。

イベントドリブンプログラミングでは、ロジックはイベントによって制御されます。つまり、データはデータのみであり、すべてのビジネスルールはコードに配置されます。イベントにはいくつかのデータが含まれ、イベントのデータに応じてロジックが変更される可能性がありますが、ここでの違いは、これらの変更ロジックルールがデータまたはコードのどこに配置されるかです。 EDP​​の場合、ロジックはコード内にあります。

また、 this の質問を見てください。いくつかの回答は、この主題に光を当てることができます。

3
cassandrad