私は仕事で、顧客に提案するためにコーディングしているロジスティクス アプリケーションの詳細なエンジニアリング プランを作成する任務を負っています。これはデータ駆動型のアプリケーションだと言われました。アプリケーションが「データ駆動型」であるとはどういう意味ですか? 反対は何ですか?これについて本当に明確な答えを得ることができないようですが、ウェブ検索中に多くの人が独自の例を投稿しているのを見ることができます. どんな助けでも大歓迎です。
8 に答える
データ駆動型プログラミングは、データ自体がプログラムロジックではなく、プログラムのフローを制御するプログラミングモデルです。これは、プログラムロジックがフローまたは状態変化の一般的な形式であるプログラムにさまざまなデータセットを提供することによってフローを制御するモデルです。
たとえば、次の4つの状態を持つプログラムがある場合:UP-DOWN-STOP-START
状態を表す入力(データ)を提供することにより、このプログラムを制御できます。
- set1:DOWN-STOP-START-STOP-UP-STOP
- set2:UP-DOWN-UP-DOWN
プログラムコードは同じままですが、データセット(動的入力タイプではなく、コンピューターに静的に与えられる)がフローを制御します。
データ駆動型プログラミングとは何かについてはいくつかのアイデアがありますが、データ構造と関数を使用した例を挙げさせてください。
非データ駆動型の例:
data_lloyd = {'name': 'Lloyd', 'lives': 'Alcoy }
data_jason = {'name': 'Jason', 'lives': 'London' }
go = function(x)
if x.name == 'Lloyd'
then
print("Alcoy, Spain")
else
print("London, UK")
end
データ主導の例:
data_lloyd = {'name': 'Lloyd', 'lives': function(){ print("Alcoy, Spain") }
data_jason = {'name': 'Jason', 'lives': function(){ print("London, UK") }
go = function(x)
x.lives()
end
最初の例では、どちらの結果を表示するかはコード ロジックで決定されます。最後の例では、出力は関数に渡されるデータによって決定されます。そのため、出力はデータによって「駆動される」と言います。
「これはデータ駆動型のアプリケーションだと言われました」 - そのようなことを言った人に聞く必要があります。
ここでもっともらしい答えを読んで、それがあなたのプロジェクトの担当者が意図したものとはまったく違うことを知りたくはありません。このフレーズはあいまいすぎて、プロジェクトに確実に適用される明確な意味を持つことはできません.
データ ドリブン アプリケーションは次のとおりです。
(1) 異なるデータ セットを受け入れて、特定のデータ セットごとに所定の決定を下し、結果として結果をスローする一連のルール
(2) 結果に基づいてトリガーされるいくつかの事前定義されたプロセス。
完璧な例はifttt.comです
アプリケーションにはルールしかありません。それを便利にするのは、そこを流れるデータです。
この記事では、私が理解している用語の意味を最も明確に説明しています。
テーブル駆動型およびデータ駆動型プログラミングとは? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31
データ/テーブル駆動型プログラミングは、反復的なプログラミング構造をデータと変換パターンに分解する手法です。この新しいデータは、この方法で使用される場合、純粋主義者によって メタデータと呼ばれることがよくあります。
与えられたアドバイスは悪くないと思いますが、データ駆動型設計は、既存または与えられたデータ構造をドメインオブジェクトの基盤として使用することを中心に展開していると常に考えてきました。
たとえば、従来の営業担当者管理プログラムには、次のタイプのテーブル構造があります。
- 営業担当者
- 領域
- お客様
- 製品
したがって、アプリケーションは、「販売を行う」などのような単純なAPIを使用するのではなく、これらのデータ構造の管理を中心に行うことになります。
他の答えが示唆するようにちょうど私の意見;)
この質問を手伝ってくれる職場の人はいませんか? より大きな例がなければ、作業内容を視覚化することは非常に困難です。しかし、私が収集したところによると、彼らは主に情報を入力するプログラムになるでしょう。これにより、顧客が管理する必要がある情報を取得および編集できるようになります。
頑張ってください!!