Size: a a a

Software Design/Architecture/Zen

2020 October 21

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Sergey Milimko
зачем для хранилища отдельный патерн вводить тогда?
Затем что репозиторий – это хранилище доменных сущностей, внутри работающее с БД, но снаружи выглядящее как коллекция в памяти. А не просто любое хранилище чего угодно.
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Sergey Milimko
зачем для хранилища отдельный патерн вводить тогда?
Переведи слово "хранилище" на английский
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
Dmitry Eliseev
Затем что репозиторий – это хранилище доменных сущностей, внутри работающее с БД, но снаружи выглядящее как коллекция в памяти. А не просто любое хранилище чего угодно.
Ты это другим объясни, это они под ним понимают просто коллекции
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
Андрей Ява
Переведи слово "хранилище" на английский
Садись, пять
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Sergey Milimko
Ты это другим объясни, это они под ним понимают просто коллекции
Так это и есть коллекции
источник

R

Roman in Software Design/Architecture/Zen
Sergey Milimko
Ты это другим объясни, это они под ним понимают просто коллекции
А коллекции - это не хранилища?)
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
Вы в курсе что у слов разные значения бывают в зависимости от контекста?
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Максим Федоров
Это же перпендикулярный паттерн
Как вы сущность будете через обработку команды менять без самой сущности? Из персиста восстановить же нужно
а зачем дляжтого репозиторий
Сделайте мапинг сообщений на аггрегат и все
Все остальное будет само достоваться
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
Sergei Baikin
а зачем дляжтого репозиторий
Сделайте мапинг сообщений на аггрегат и все
Все остальное будет само достоваться
Это уже ES, про него не было речи
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Dmitry Eliseev
Так это и есть коллекции
Ну не совсем. Коллекция - это набор данных, с которыми ты можешь работать (передавать, обрабатывать, фильтровать), репозиторий же хранилище данных, с которыми ты не можешь работать пока не извлечёшь.
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Максим Федоров
Это уже ES, про него не было речи
при чем тут ES? Он про способ хранения
а я про способ обработки
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
Sergei Baikin
при чем тут ES? Он про способ хранения
а я про способ обработки
Способ Обработки того что хранится :)
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
https://martinfowler.com/eaaCatalog/repository.html

"Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects"

Отсюда суть патерна - быть посредником между слоем бизнес логики и инфраструктурным слоем хранения данных бизнес сущностей. Это также определяет область применения патерна: любые архитектуры где есть разделение бизнес логики и всего остального.

Часто в репозитории передают active record модели фрэймворков, которые не являются слоем бизнес логики. Потом пишут про, то что патерн зло.
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Андрей Ява
Ну не совсем. Коллекция - это набор данных, с которыми ты можешь работать (передавать, обрабатывать, фильтровать), репозиторий же хранилище данных, с которыми ты не можешь работать пока не извлечёшь.
Коллекция в той же Яве – это класс Collection с методами add, get и remove.
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Максим Федоров
Способ Обработки того что хранится :)
пришло сообщение
согласно нему инфраструктура подняла аггрегат
аггрегат обработал сообщение
все не надо никаких репозиториев и знания о том что надо что то откуда то востанавливать
источник

¿

¿hope in Software Design/Architecture/Zen
Sergey Milimko
https://martinfowler.com/eaaCatalog/repository.html

"Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects"

Отсюда суть патерна - быть посредником между слоем бизнес логики и инфраструктурным слоем хранения данных бизнес сущностей. Это также определяет область применения патерна: любые архитектуры где есть разделение бизнес логики и всего остального.

Часто в репозитории передают active record модели фрэймворков, которые не являются слоем бизнес логики. Потом пишут про, то что патерн зло.
Больше на него пеняют, ибо часто превращается в God object
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
Sergei Baikin
пришло сообщение
согласно нему инфраструктура подняла аггрегат
аггрегат обработал сообщение
все не надо никаких репозиториев и знания о том что надо что то откуда то востанавливать
Про «подняла агрегат» мы и обсуждаем
источник

RS

Roman Shandur in Software Design/Architecture/Zen
А есть личные хорошие примеры того, где его использовать, и он помогал решить проблему и принести value?
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Dmitry Eliseev
Коллекция в той же Яве – это класс Collection с методами add, get и remove.
Коллекция - структура данных. Хранилище - это хранилише.
источник