Специализировать или обобщать объекты переноса и операции над большими наборами данных? - PullRequest
0 голосов
/ 30 января 2012

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

1 Ответ

1 голос
/ 30 января 2012

Со временем я начал переходить на специализированные запросы.Что вы можете сделать, если вы хотите, чтобы ваш бэкэнд был универсальным, вы можете выбрать свойства из объекта для сериализации.Таким образом, вы сохраняете тяжелую внутреннюю OO-конструкцию с большим повторным использованием, но небольшим сетевым пространством.Обычно это делается с помощью JSON.

Что произойдет, если вы будете следовать многоуровневой архитектуре и принципам ОО - это то, что вы будете перетасовывать путь к большому количеству данных.Например, если ваш бизнес-уровень должен иметь четкое представление о слое постоянства, вам необходимо заполнить все поля данных.Поэтому я хотел бы забыть о чистом срезе и позволить постоянному объекту, связанному с БД, пройтись по слоям, чтобы я использовал ленивую загрузку, и только отпустить его перед сериализацией для клиента.

...