
Артур Евгеньевич
01.06.2018
16:54:11

Hell
01.06.2018
16:54:27

Артур Евгеньевич
01.06.2018
16:54:45
пишешь интерфейс репозитория, и в его реализации пишешь любую сложную логику

Hell
01.06.2018
16:55:15

Google

Hell
01.06.2018
16:55:34
Repo не делает никаких соединений

Артур Евгеньевич
01.06.2018
16:55:40
но вообще да это мутная херня, поэтому в случае несокльких БД особенно разных форматов лучше event consistency
маппер инджектим в репу и погнали

Hell
01.06.2018
16:56:27
Потому что открытие сессии это не есть задача репозитория

Артур Евгеньевич
01.06.2018
16:57:16
или конекшн фактори

Hell
01.06.2018
16:57:52
ведь Named это антипаттерн
Меня разраб SimpleInjector послал с этой просьбой

Артур Евгеньевич
01.06.2018
16:59:25
Не понял ты о чем

Google

Артур Евгеньевич
01.06.2018
16:59:36
Вот есть GiftRepo - это интерфейс
и лежит он в доменно слое, содержит только красивые названия методов

Aleh
01.06.2018
17:00:02

Артур Евгеньевич
01.06.2018
17:00:40
А есть низкоуровневая фигня из Infrastrucutre - GiftTarantoolRepo, GiftMysqlRepo - и т.д - туда прокидываем коненкшн или фабрику коннекшнов

Aleh
01.06.2018
17:00:41

Артур Евгеньевич
01.06.2018
17:02:10
Также можно создать условный GiftComplexDbRepo - и в нем уже работать с чем хочешь, обеспечивая транзацкционность на стороне приложения а не бд(что в распределенных системах вообещ невозможно) хотя вроед у моськи что то видел про транзакции в рамках одного хоста
И?)
Зачем нам UoW при 1 действии?

f4rt~
01.06.2018
17:03:12
крч вот твой goal, да?

Артур Евгеньевич
01.06.2018
17:03:22
да даже не при 1- он тоже может быть не нужен, просто в ряде случаев до флуша не доходим в случае ошибки, и все отменяется
щас прочитаю
земля круглая ебанаврот

Hell
01.06.2018
17:08:00

Артур Евгеньевич
01.06.2018
17:09:59

Aleh
01.06.2018
19:29:35

Артур Евгеньевич
01.06.2018
19:32:01

Google

Aleh
01.06.2018
19:32:25

Артур Евгеньевич
01.06.2018
19:33:03

Hell
01.06.2018
19:33:05

Артур Евгеньевич
01.06.2018
19:33:20
короче я так понял что EM это тимо отдекорированный репозиторий

Hell
01.06.2018
19:33:55
Найди там ошибку в моем ДНК, когда я выбирал эти паттерны
Двое разрабов SI не в курсе

Aleh
01.06.2018
19:34:29

Артур Евгеньевич
01.06.2018
19:35:01
добавлюя через new а потом пизаю ее в метод save()

Aleh
01.06.2018
19:35:42

Артур Евгеньевич
01.06.2018
19:36:03
да

Sergey
01.06.2018
19:36:53
да
https://www.slideshare.net/Yaboomaster1/save-repository-from-save

Aleh
01.06.2018
19:36:54
да
Так себе, советую подумать над переименованием в add или типа того

Артур Евгеньевич
01.06.2018
19:37:14
да точно add мы назыаем
save часто как приватный метод

Sergey
01.06.2018
19:38:40
потому что если у тебя там flush для глобального UoW.... то это так себе идея. сомневаюсь что у тебя круто изолированный агрегат

Valentin
01.06.2018
19:41:14
Ребятки, а посоветуйте годный материал по доктрине. Концепции, практики и т.д. Кратко и по делу. Помимо мануала. Спасибо

Google

Sergey
01.06.2018
19:41:39

Артур Евгеньевич
01.06.2018
19:41:39

Valentin
01.06.2018
19:42:10
@fes0r danke

Admin
ERROR: S client not available

Hell
01.06.2018
19:43:44
https://stackoverflow.com/a/48573496/444079

Sergey
01.06.2018
19:51:43
достаем сущности из UoW, ищем корень агрегата и достаем из него ивенты

Roman
03.06.2018
16:26:13
в чем отличие Table Data Gateway (Шлюз к данным таблицы) и Data Mapper () можно в крации пояснить?

Enterpise
03.06.2018
16:26:36
ППКС

Roman
03.06.2018
16:27:22
єто слишком кратко
как по мне они обое играют роль шлюза в работе с таблицой

Hell
03.06.2018
16:58:03
вы так говорите, как будто все поняли и не согласны с высказыванием по ссылке

Sergey
03.06.2018
16:58:53
и через этот корень ты должен взаимодействовать со всем остальным деревом. Точнее корень как бы скрывает что там есть кто-то еще.

Evgeniy
03.06.2018
17:00:20

Sergey
03.06.2018
17:01:09

Evgeniy
03.06.2018
17:01:31

Google

Evgeniy
03.06.2018
17:01:35
строго этого нет, тут ты прав

Sergey
03.06.2018
17:01:48
https://www.martinfowler.com/eaaCatalog/tableDataGateway.html
https://www.martinfowler.com/eaaCatalog/dataMapper.html

Evgeniy
03.06.2018
17:01:57
только хотел эту же ссылку дать

Sergey
03.06.2018
17:02:22
ну то есть data mapper именно мэпит, а TableGateway просто скрывает SQL
то есть в table gateway спокойно можно разместить incrementCounter а в data mapper надо что бы объект, на который мы мэпим, умел со счетчиками работать. А мэппер бы просто мэпил.

Evgeniy
03.06.2018
17:06:18
ну table gateway как бы говорит есть table и есть gateway (шлюз доступа туда)
есть некая сущность которая по структуре соответсвует строке (обычно)
это все очень упрощенно
в datamapper сущность не обязана соответствовать строке там чуть другое)

Sergey
03.06.2018
17:07:50

Evgeniy
03.06.2018
17:08:06
да это я понимаю