「薄いデータアクセスレイヤー」とは、主に、ORMツールを使用してSQLを手動で作成することを意味しますか?"薄いデータアクセス層"は、主に手作業でSQLを書くことを意味しますか?
答えて
「薄い」という単語をどのように定義するかによって異なります。それは私が聞いた最も虐待された言葉の一つで、「軽量」だけと匹敵します。
それはそれを定義する1つの方法ですが、おそらく最良ではありません。 ORMレイヤーはSQLを生成するだけでなく、キャッシング、「ダーティー」フィールドなどのマーキングなど、多くの機能を備えています。すべての機能をORMで実装すると、提供しています。
これはおそらく誰が言いますか、薄いデータアクセスレイヤーは、レイヤーに追加ロジックがほとんどないことを意味します(データストレージの抽象化など)。おそらく複数のRDBMS (リトライ、フェイルオーバー)などはありません。
ORMツールはこれらの多くを提供する傾向があるため、ORMを使用したソリューションはおそらく「シン」とは見なされません。上記のような機能を提供する場合、多くの自家製データアクセス層も「薄型」とは見なされません。
あなたはそれが含まれなければならないものを指定せずに表現していないように思われるようです。それは用語そのものが曖昧だからですか? – pepper
「薄い」レイヤーを正確に構成するものは、曖昧さ以上に主観的です。アプリケーション表現(通常はビジネスオブジェクト)とデータ表現(通常はSQLテーブル)の間でデータを移動するためのコードがなければなりません。 –
文脈によっては違うと思います。
これは、ビジネスオブジェクトが単純な基本リレーショナルテーブル構造を直接マップしている可能性があります。クラスごとに1つのテーブル、クラス属性ごとに1つの列、データベースへのビジネスオブジェクト構造の変換テーブル構造は「薄い」(すなわち複雑ではない)。これは、もちろんORMで処理することができます。
ORMは、「薄いデータアクセスレイヤー」と言っても意味がありますが、ORMがどのようにフル機能を備えているかによって異なります。定義するのは難しい用語のようです。多分それはあいまいであり、あまり意味がありません。少なくとも私はここに来ています。 – pepper
私は、この文脈で「薄い」と思うの意味:
- それは軽量です。
- パフォーマンスオーバーヘッドが低くなります。
- 最小限のコードを記述します。
SQLを書くことは確かにこの請求書に適合しますが、念頭に置くほとんどのORMは私を軽量化するものではありませんが、ORMにすることはできません。
ストアドプロシージャの使用を避けるなど、データベースに使用されるロジックがない、または最小限のロジックが使用されている可能性があります。他の人々が言及したように、それは最も可能性の高い意味に関する文脈の文脈に依存する。
ストアドプロシージャがないと、データアクセスレイヤーが薄いのはなぜですか? – pepper
データアクセスは常に薄いと考えられていました... DALは実際にロジックを持つ場所ではありません。
多分あなたが話した人は、ビジネス層とデータアクセス層の組み合わせについて話しています。ビジネスレイヤーが存在しない場合(例:非常に単純なアプリ、またはすべてのビジネスルールがデータベースにあるなど)
「データアクセスレイヤー」と同義語として「ORMレイヤー」を使用していますか?私は2つの間に明確な区別があると思いましたか? – pepper
いいえ、ORMはデータアクセス層を実装する1つの方法です。データアクセスレイヤをクラスまたはインターフェイスとして、ORMをその特定の実装と考えてください。 – duffymo