170 похожих чатов

Всем привет. есть вопрос на счет транзакций и чистой архитектуры. у меня

есть слой service и есть repository.

как лучше реализовать транзакционность запросов к бд?
Допустим у меня есть методы: Insert() и List().

1) В сервисном слое написать что то типа s.db.BeginTransaction() и внунтри вызывать методы Insert(tx), List(tx).

2) Спрятать весь этот функционал внутри репозитория?

3 ответов

7 просмотров
Alisher- Автор вопроса

Это плохо когда репозиторий знает слишко много о реализации того или иного метода, поэтому я рассматриваю и первой варик

Alisher
Это плохо когда репозиторий знает слишко много о р...

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

Евгений Омельченко
Если транзакции базы данных вы используете, чтобы ...

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

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
.
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
.
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
6
Карта сайта