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

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

1 Ответ

3 голосов
/ 19 сентября 2008

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

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

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

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

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

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

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

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

Я бы также предложил взять другую книгу Мартина «Шаблоны архитектуры корпоративных приложений». «Шаблон» DTO там задокументирован.

...