Каковы преимущества и недостатки DTO с точки зрения производительности веб-сайта?

StackOverflow https://stackoverflow.com/questions/97532

Вопрос

Каковы преимущества и недостатки DTO с точки зрения производительности веб-сайта?(Я говорю в случае, когда доступ к базе данных осуществляется на сервере приложений, отличном от веб-сервера, и веб-сервер может обращаться к базе данных напрямую.)

Это было полезно?

Решение

DTO не связаны с производительностью.Я думаю, то, о чем вы спрашиваете, - это влияние многоуровневости на производительность.В частности, использование уровня приложений между вашим веб-уровнем (веб-сервер) и уровнем данных (сервер базы данных).

Как правило, это приводит к увеличению задержки (у вас возникают дополнительные сетевые обходы), но вы получаете некоторую дополнительную пропускную способность, распределяя нагрузку по машинам.

Другая распространенная причина (опять же, низкая производительность), по которой люди делают это, заключается в том, чтобы позволить им разместить веб-сервер в DMZ, сохраняя серверы приложений и баз данных внутри брандмауэра.

Другой потенциальной причиной (неэффективность) является возможность подключения нескольких пользовательских интерфейсов поверх одного приложения.Я делал это в прошлых проектах с отличными результатами (там, где этого требовал бизнес).

Кроме того, не стоит недооценивать работу, необходимую для поддержания подобной архитектуры.Это требует больше работы, чем многоуровневое решение, поэтому используйте его только в том случае, если вы предполагаете, что оно вам понадобится.

При этом использование DTO не требует использования Многоуровневости.

Лучшее описание многоуровневости, которое я нашел, взято из книги Мартина Фаулера "Шаблоны анализа".Сзади есть небольшой раздел, посвященный фасадам приложений и многоуровневости.

Просто чтобы повторить предыдущий ответ, DTO не являются проблемой производительности.Это просто класс без методов, используемых для обеспечения изоляции между различными частями вашего приложения.

Я бы также посоветовал почитать другую книгу Мартина "Шаблоны архитектуры корпоративных приложений".Там задокументирован "шаблон" DTO.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top