Re[10]: Фаулер. Архитектура
От: Cyberax Марс  
Дата: 26.07.19 20:19
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>>>- устраняет дублирование запросов, созданных с помощью ORM

C>>???
Б>Я про повторение частей запросов, построенных с помощью ORM.
Б>Т.е. нескольким запросам требуются одни и те же подзапросы.
"const CommonExpr = ...."

Б>>>- позволяет добавить SQL запросы в обход ORM

C>>???
Б>Это когда надо написать запрос на голом SQL. Где такой код хранить, как не в внутри persistance?
Там, где оно нужно.

C>>В документе речь идёт об адаптерах — это таки технический термин. Означающий, что интерфейс ORM будет адаптироваться к внутреннему интерфейсу системы. От этого и возникает вопрос: нафига?

Б>Этот адаптер — часть приложения, которая отвечает за persistance (т.е. persistance-слой). Реализует интерфейс persistance, а ORM — деталь реализации.
Ну как бы надо термины не изгибать до неузнаваемости, а так и писать: "слой доступа к данным, в котором сосредоточено управление данными". Даже термин есть: DAL (Data Access Layer).

Б>С другой стороны, и persistance тоже не совсем слой (в "старом" понимании). Есть же и другие "слои" в инфраструктуре — слой поиска, слой нотификации, слой интеграции с какой-нибудь внешней системой и т.п.

Тут тоже есть вопросы. "Слой" — это совершенно неправильное слово для много из этого.

В частности, "слой" подразумевает, что под ним (и над ним) что-то есть. Т.е. берём систему без оповещений, добавляем слой и получаем систему с оповещениями. При этом нижележащий слой не знает о системе оповещений.

Не, местами так можно делать. Но обычно это не имеет никакого смысла.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.