
Alex
01.12.2016
10:09:08
интерактор намеренно проваливает контекст потому что нельзя списать деньги если их нет

Антон
01.12.2016
10:09:25

Alex
01.12.2016
10:09:32
Я соглашусь

Антон
01.12.2016
10:10:08
я не увидел там чего-то чего не делаю каждый день
кроме хуков, но как и зачем их юзать не пойму

Google

Антон
01.12.2016
10:10:23
если вы мне не можете объяснить зачем это все, зачем вы советуете это джуну?
всмысле?

Alex
01.12.2016
10:11:02
Ты говоришь что это можно написать на голых рельсах

Антон
01.12.2016
10:11:07
есть транзации есть еншуре есть active_model
зачем им интерактор?

Alex
01.12.2016
10:11:08
Это можно написать и на голых рубях.
если есть модели зачем сервис объекты?

Антон
01.12.2016
10:11:42

Alex
01.12.2016
10:12:06
бинго
чтобы не писать интерактор для группы интеракторов ты их просто собираешь в один органайзер

Антон
01.12.2016
10:12:25
бинго
а без интеракторов у меня вся логику в моделях будет?
transaction do
ServiceOne.run
ServiceTwo.run
ensure
delete file
end

Alex
01.12.2016
10:13:03
Опять транзакции ... у тебя транзакции загруженный файл удаляют?

Google

Alex
01.12.2016
10:14:28
ensure чего?
exception для control flow это антипаттерн

Антон
01.12.2016
10:15:05

Alex
01.12.2016
10:15:17
хорошо, плохая практика
хотя насчет того что exception это не паттерн это спорно

Антон
01.12.2016
10:15:33
заебали паттерны придумывать

Alex
01.12.2016
10:15:44
А что ты в этом чатике хочешь читать?

Антон
01.12.2016
10:16:09
помоему заебись попиздели
я теперь хоть интеракторы попробую

Mikhail
01.12.2016
10:16:59
Хорошая тема я даже пролистал наверх
Алексу респект доступно жует

Антон
01.12.2016
10:17:33

Alex
01.12.2016
10:18:07
ага, а если все писать в моделях то сервис объекты не нужны
нормальная рельсовая практика

Антон
01.12.2016
10:18:21
я не предлагаю писать логику в моделях

Mikhail
01.12.2016
10:18:44
Данил, выебываешься тут ты а не Антон кстати.

Alex
01.12.2016
10:19:07
смотри, зачем писать каждый раз органайзер если ты можешь просто нормально написать интерактор и объединить их в цепочку?

Mikhail
01.12.2016
10:19:25

Антон
01.12.2016
10:19:32

Alex
01.12.2016
10:19:41
Ты пишешь каждый раз органайзер

Google

Антон
01.12.2016
10:19:53

Mikhail
01.12.2016
10:20:25
Скорее сервис обджекты с роллбеком

Антон
01.12.2016
10:20:29

Alex
01.12.2016
10:20:38
Ты их в цепочку объединяешь
ты не пишешь логику "как подчистить за этим интерактором"
это нарушение инкапсуляции

Антон
01.12.2016
10:21:11

Alex
01.12.2016
10:21:39

Антон
01.12.2016
10:21:51
это наршуение какраз

Mikhail
01.12.2016
10:21:54

Alex
01.12.2016
10:22:24
это наршуение какраз
Вот именно что ты их в транзакцию объединяешь и файлы за ними чистишь за их пределами
бизнес логика получается размазанной

Антон
01.12.2016
10:22:44
если у тебя органайзер за всеми подчищает - таже самая ситуация

Alex
01.12.2016
10:23:00
он не подчищает
он у каждого интерактора спрашивает умеет ли он за собой подчищать
и если умеет то запускает

Антон
01.12.2016
10:23:13

Alex
01.12.2016
10:23:41
Это я про твой кейс писал

Антон
01.12.2016
10:23:52

Alex
01.12.2016
10:24:08
т.е твой кейс, да.

Google

Admin
ERROR: S client not available

Alex
01.12.2016
10:24:22
ты предлагаешь набор интеракторов оборачивать за их пределами и знать что за ними надо подчистить

Антон
01.12.2016
10:24:26
я его так накидал на коленке
ensure может быть внутри сервис объекта
может быть все что угодно

Alex
01.12.2016
10:25:07
как он может быть внутри сервис объекта?
ты несколько сервис объектов в цепочку объединяешь

Антон
01.12.2016
10:25:27
def process
do something
ensure
clean
end
A.process
B.process
каждый подчистил сам

Alex
01.12.2016
10:26:03
каким образом?
интерактор отработал уже
как он за собой подчистит?
если он не знает что следующий провалился?

Антон
01.12.2016
10:26:21
ensure же
rollback же

Alex
01.12.2016
10:26:33
ensure ты где пишешь?

Антон
01.12.2016
10:26:45
вон же выше написал
он сработает даже если будет exeption

Alex
01.12.2016
10:27:04
Вот смотри
что ты делаешь когда тебе надо два сервис объекта в цепочку объединить?

Антон
01.12.2016
10:27:44
выбери любой вариант, я кучу предложил

Mikhail
01.12.2016
10:27:46
вам надо выйти из цикла)

Google

Alex
01.12.2016
10:27:58

Антон
01.12.2016
10:28:29
в транзакицю, в частный метод сервиса куда угодно можно пихать ensure

Alex
01.12.2016
10:28:35
Бля
транзакция у тебя в теле какого метода торчит?

Антон
01.12.2016
10:28:41
в любой блок

Alex
01.12.2016
10:28:58
У тебя ensure внутри интерактора торчит?

Антон
01.12.2016
10:29:03

Alex
01.12.2016
10:29:13
это где?