
Kirill
20.09.2018
13:57:15

Lesha
20.09.2018
13:57:54

Pawel
20.09.2018
13:57:57

Никита
20.09.2018
13:58:17

Google

Никита
20.09.2018
13:58:24
Нас в принципе не волнует откуда и как оно получает

Maksim
20.09.2018
13:58:27

Lesha
20.09.2018
13:58:33

Daniel
20.09.2018
13:58:34

Lesha
20.09.2018
13:58:47

V
20.09.2018
13:59:08

Алексей
20.09.2018
13:59:23

Maksim
20.09.2018
13:59:29
в чём плюсы миллион раз описали. Если человек на столько крут, что понять этого не в силах, это проблема человека и перекладывать её на других - по меньшей мере глупо.

Никита
20.09.2018
13:59:33

Aleksandr
20.09.2018
13:59:40

Никита
20.09.2018
14:00:08

Lesha
20.09.2018
14:00:15
Ну, вот тут возможно проблема
Вот, польза репозитория как раз в том, что бы абстрагировать работу с данными (условно get/set) от конкретной реализации этой работы (redis-get, redis-set)

Maksim
20.09.2018
14:00:27

Google

Aleksandr
20.09.2018
14:00:39

Lesha
20.09.2018
14:00:56
Ну, вот тут возможно проблема
а имея унифицированный интерфейс, ты сможешь в своем коде прокидывать разные реализации интерфеса и не придется ничего переписывать (зачастую)

Никита
20.09.2018
14:01:15
Я вот часто видел что в структуру репозитория пихают бд. Верно?

Maksim
20.09.2018
14:01:16
чтением у тебя в примере занимается репозиторий, а запись почему-то ответственность сущности.

Pawel
20.09.2018
14:01:18

Lesha
20.09.2018
14:01:41

Никита
20.09.2018
14:01:57
да
Окей. Как в этом случае обстоят дела с транзакциями?

Lesha
20.09.2018
14:02:06

Алексей
20.09.2018
14:02:20

Никита
20.09.2018
14:02:40
Допустим транзакция вида: создаём сообщение, обновляем счетчик сообщений.
Как это будет организовано через репозитории?

Maksim
20.09.2018
14:03:07
в репозитории просто этого быть не должно)

Никита
20.09.2018
14:03:20
Не должно быть чего? Транзакций?

Maksim
20.09.2018
14:03:30
ровно как и создания чего-либо

Lesha
20.09.2018
14:03:33

Артем
20.09.2018
14:03:41

Maksim
20.09.2018
14:03:58
там выше накидывали за cqrs. очень в цвет накидывали

Артем
20.09.2018
14:04:28
если есть проблемы с данными - ты ищешь их в коде репозитория
если есть проблемы с логикой - в других частях приложения

Maksim
20.09.2018
14:06:04

Google

Артем
20.09.2018
14:06:43

Maksim
20.09.2018
14:07:07

Артем
20.09.2018
14:07:19

Maksim
20.09.2018
14:07:36

Артем
20.09.2018
14:08:30
на определенном этапе развития приложения, когда за его работой становится сложнее следить, требуется применение более сложных подходов, которые обеспечат распределение нагрузки на людей (а так же рост самой команды)
но это никак не упрощает саму разработку
и поддержку

Maksim
20.09.2018
14:08:58
как cqrs относится к тому, что ты написал?

Артем
20.09.2018
14:09:05
как и применение репозитория, о котором тут срались выше
он тоже усложняет код

Lesha
20.09.2018
14:09:28

Maksim
20.09.2018
14:09:31
блин... вы тут на наркоте что ли сидите

Bohdan
20.09.2018
14:10:08
ну он-то усложняет, да
но я лично не хочу писать в процедурном стиле даже на простейших проектах

Артем
20.09.2018
14:10:21

Pawel
20.09.2018
14:10:26

V
20.09.2018
14:10:26
обработка ошибок усложняет код

Артем
20.09.2018
14:10:45

Lesha
20.09.2018
14:10:59

Артем
20.09.2018
14:11:13
рефакториг никто не отменял

Google

Lesha
20.09.2018
14:11:24

V
20.09.2018
14:11:27
нет, правда, гораздо проще же везде делать panic(err), а в мейне один обработчик паники ?

Pawel
20.09.2018
14:12:35

Bohdan
20.09.2018
14:13:08

V
20.09.2018
14:13:28
спасибо за ценный совет, пора мне перестать пукать в этом чате

Никита
20.09.2018
14:13:32
Кстати, такой вопрос по логированию: я так понимаю что хоший подход инициализировать БД, логгер и прочее в мейне и потом пробрасывать это все через уровни. Вот мы на уровне бизнес логики, и у нас идёт обращение к БД через какой то метод. Где мы должны логировать – на уровне обращения к БД либо на уровне бизнес логики ?
Заранее извиняюсь если сумбурно

Pawel
20.09.2018
14:13:43
Более того, панику вообще не надо обрабатывать. Любителям репозиториев на заметку

Lesha
20.09.2018
14:14:09

V
20.09.2018
14:14:20
вы видите те же слова, что и я?

Admin
ERROR: S client not available

Maksim
20.09.2018
14:14:23
отвечая на твой вопрос, запросы будут логироваться там, где работа непосредственно с хранилищем

Pawel
20.09.2018
14:14:46

Никита
20.09.2018
14:14:54

Maksim
20.09.2018
14:15:30
что и куда я проброшу? я не буду в доменный слой пробрасывать коннект к бд и логгер. нефиг им там делать

Никита
20.09.2018
14:15:48
Окей. Тогда какой подход выберете вы?

Maksim
20.09.2018
14:16:25
не буду этого делать, очевидно.
я вопрос твой понять не могу.

V
20.09.2018
14:16:28
чем плох логгер в бизнес-логике? 0о

Maksim
20.09.2018
14:16:44

Google

V
20.09.2018
14:16:56
тем, что он не используется в бизнес-логике и там не нужен

Bohdan
20.09.2018
14:17:02

Maksim
20.09.2018
14:17:07
тот же ответ и логгеру

V
20.09.2018
14:17:28
но ведь в бизнес-логике требуется логирование

Никита
20.09.2018
14:17:31
Так где Логировать?

Maksim
20.09.2018
14:17:43
бизнесс логике логирование зачем? приведи пример

V
20.09.2018
14:17:49
не запросов к базе, но вещей связанных с бизнес-логикой

Никита
20.09.2018
14:18:50

Maksim
20.09.2018
14:19:27

Никита
20.09.2018
14:19:45
Ну вот мы хотим логировать что то из домена
Где нам это делать

Maksim
20.09.2018
14:20:40
я не совсем уверен, что смогу тебе в чатике объяснить тему нескольких книг.
Но давай от обратного: что для тебя домен. Попробуй привести пример какой-нибудь из жизни.

Никита
20.09.2018
14:23:04

Maksim
20.09.2018
14:23:38

Никита
20.09.2018
14:23:47

Maksim
20.09.2018
14:24:44
а что в этом кейсе бизнее логика?
бизнесу не насрать, например, какой http сервер ты юзаешь, что бы получить запрос на создание поста?

Никита
20.09.2018
14:25:28
Ну вот Logic tier

Maksim
20.09.2018
14:26:04
на adr смахивает
ну т.е. Logic tier у нас умеет принимать запросы, как-то их крутить, ходить за данными и давать указание на построение проекций?
если на все вопросы ответ положительный, то мы под доменом явно понимаем разные вещи.

Никита
20.09.2018
14:27:57
Что вы понимаете под доменом?