ORM を使用する理由は何ですか? [closed] 質問する

ORM を使用する理由は何ですか? [closed] 質問する

ORM の「利点」に興味があり、管理/クライアントに ORM を使用する理由は何でしょうか。その理由は何でしょうか。

回答ごとに 1 つの理由を残すようにしてください。そうすれば、どの理由が最良の理由として投票されるかがわかります。

ベストアンサー1

ORM を使用する最も重要な理由は、リッチなオブジェクト指向のビジネス モデルを持ちながら、それを保存し、リレーショナル データベースに対して効果的なクエリをすばやく記述できるようにすることです。私の観点からすると、記述できる高度なタイプのクエリ以外に、他の生成された DAL と比較して、優れた ORM が提供する実際の利点は見当たりません。

私が考えているクエリの 1 つのタイプは、ポリモーフィック クエリです。単純な ORM クエリでは、データベース内のすべての図形を選択できます。図形のコレクションが返されます。ただし、各インスタンスは、その識別子に応じて正方形、円、または長方形になります。

別の種類のクエリは、単一のデータベース呼び出しでオブジェクトと 1 つ以上の関連オブジェクトまたはコレクションを積極的に取得するクエリです。たとえば、各シェイプ オブジェクトは、頂点と側面のコレクションが設定された状態で返されます。

申し訳ありませんが、ここでは他の多くの人と意見が異なりますが、コード生成は、ORM を選択する十分な理由にはならないと思います。ORM のような概念的またはパフォーマンス上のオーバーヘッドがないコード ジェネレーター用の優れた DAL テンプレートを多数作成または見つけることができます。

あるいは、ORM を使用するのに適切な SQL の書き方を知る必要はないと考えている場合も、私はそれには同意しません。単一のクエリを記述するという観点からは、ORM に頼る方が簡単であるというのは本当かもしれません。しかし、ORM では、開発者がクエリが ORM でどのように機能するか、およびクエリが変換される SQL を理解していない場合、パフォーマンスの低いルーチンを作成するのは非常に簡単です。

複数のデータベースに対して機能するデータ レイヤーを持つことは、メリットになります。ただし、それほど頻繁に依存する必要はありません。

最後に、私の経験では、ORM のより高度なクエリ機能を使用していない場合は、学習と CPU サイクルを少なくして残りの問題を解決できる他のオプションがあることを再度強調しておきます。

ああ、確かに、ORM での作業が楽しいと感じる開発者もいるので、開発者を満足させるという観点からも ORM は良いです。=)

おすすめ記事