Web サイトのパフォーマンスの観点から見た DTO の長所と短所は何ですか? (データベースがWebサーバーとは別のアプリサーバーでアクセスされ、Webサーバーがデータベースに直接アクセスできる場合について話しています。)
1 に答える
DTOはパフォーマンスの問題ではありません。あなたが質問しているのは、階層化のパフォーマンスへの影響だと思います。特に、Web層(Webサーバー)とデータ層(データベースサーバー)の間でアプリケーション層を使用します。
一般に、遅延が増加する(ネットワークのラウンドトリップが増える)ことを意味しますが、負荷をマシン間で分割することにより、容量をいくらか増やすことができます。
人々がそうするもう1つの一般的な理由(これもパフォーマンスが低下します)は、アプリケーションサーバーとデータベースサーバーをファイアウォール内に維持しながら、WebサーバーをDMZに配置できるようにすることです。
もう1つの潜在的な理由(パフォーマンスの低下)は、単一のアプリケーションの上に複数のUIをプラグインできることです。私は過去のプロジェクトでこれを行い、素晴らしい結果が得られました(ビジネスで必要な場合)。
また、その性質のアーキテクチャを維持するために必要な作業を過小評価しないでください。非階層型ソリューションよりも手間がかかるため、必要になると予想される場合にのみ使用してください。
そうは言っても、DTOを使用するために階層化を使用する必要はありません。
階層化について私が見つけた最も良い説明は、MartinFowlerの本AnalysisPatternsから来ています。アプリケーションのファサードと階層化については、後ろに小さなセクションがあります。
前の答えを繰り返しますが、DTOはパフォーマンスの問題ではありません。これは、アプリケーションのさまざまな部分を分離するために使用されるメソッドのないクラスです。
Martinの他の本、Patterns of EnterpriseApplicationArchitectureも手に入れることをお勧めします。DTOの「パターン」はそこに文書化されています。