Maksim
L
Daniel
V
Алексей
Maksim
в чём плюсы миллион раз описали. Если человек на столько крут, что понять этого не в силах, это проблема человека и перекладывать её на других - по меньшей мере глупо.
.
.
L
Ну, вот тут возможно проблема
Вот, польза репозитория как раз в том, что бы абстрагировать работу с данными (условно get/set) от конкретной реализации этой работы (redis-get, redis-set)
L
Ну, вот тут возможно проблема
а имея унифицированный интерфейс, ты сможешь в своем коде прокидывать разные реализации интерфеса и не придется ничего переписывать (зачастую)
.
Я вот часто видел что в структуру репозитория пихают бд. Верно?
Maksim
чтением у тебя в примере занимается репозиторий, а запись почему-то ответственность сущности.
L
.
да
Окей. Как в этом случае обстоят дела с транзакциями?
L
Алексей
.
Допустим транзакция вида: создаём сообщение, обновляем счетчик сообщений.
.
Как это будет организовано через репозитории?
Maksim
в репозитории просто этого быть не должно)
.
Не должно быть чего? Транзакций?
Maksim
ровно как и создания чего-либо
Maksim
там выше накидывали за cqrs. очень в цвет накидывали
Artem
если есть проблемы с данными - ты ищешь их в коде репозитория
Artem
если есть проблемы с логикой - в других частях приложения
Artem
Artem
Artem
на определенном этапе развития приложения, когда за его работой становится сложнее следить, требуется применение более сложных подходов, которые обеспечат распределение нагрузки на людей (а так же рост самой команды)
Artem
но это никак не упрощает саму разработку
Artem
и поддержку
Maksim
как cqrs относится к тому, что ты написал?
Artem
как и применение репозитория, о котором тут срались выше
Artem
он тоже усложняет код
Maksim
блин... вы тут на наркоте что ли сидите
Bohdan
ну он-то усложняет, да
но я лично не хочу писать в процедурном стиле даже на простейших проектах
V
обработка ошибок усложняет код
Artem
L
Artem
рефакториг никто не отменял
V
нет, правда, гораздо проще же везде делать panic(err), а в мейне один обработчик паники 🙂
Pawel
Bohdan
V
спасибо за ценный совет, пора мне перестать пукать в этом чате
.
Кстати, такой вопрос по логированию: я так понимаю что хоший подход инициализировать БД, логгер и прочее в мейне и потом пробрасывать это все через уровни. Вот мы на уровне бизнес логики, и у нас идёт обращение к БД через какой то метод. Где мы должны логировать – на уровне обращения к БД либо на уровне бизнес логики ?
.
Заранее извиняюсь если сумбурно
Pawel
Более того, панику вообще не надо обрабатывать. Любителям репозиториев на заметку
L
V
вы видите те же слова, что и я?
Maksim
Maksim
отвечая на твой вопрос, запросы будут логироваться там, где работа непосредственно с хранилищем
Maksim
что и куда я проброшу? я не буду в доменный слой пробрасывать коннект к бд и логгер. нефиг им там делать
.
Окей. Тогда какой подход выберете вы?
Maksim
не буду этого делать, очевидно.
я вопрос твой понять не могу.
V
чем плох логгер в бизнес-логике? 0о
Maksim
V
тем, что он не используется в бизнес-логике и там не нужен
Bohdan
Maksim
тот же ответ и логгеру
V
но ведь в бизнес-логике требуется логирование
.
Так где Логировать?
Maksim
бизнесс логике логирование зачем? приведи пример
V
не запросов к базе, но вещей связанных с бизнес-логикой
.