
Alex
01.12.2016
10:29:24
ты куда этот метод пихаешь?

Антон
01.12.2016
10:29:29
это где?
в любом методе, в любом блоке, в любом классе

Alex
01.12.2016
10:29:47
Т.е ты в каждом контроллере который использует твой сервис объект будешь за этим сервис объектом подчищать?
Соответственно ты будешь копипастить код и увеличивать тестовое покрытие да?

Google

Антон
01.12.2016
10:30:26
class ServiceA
def run
ensure
end
при инициализации могу ensure пихнуть

Alex
01.12.2016
10:31:47
Окей, твой интерактор может за собой подчистить если он провалился, да?

Антон
01.12.2016
10:31:57
да

Alex
01.12.2016
10:32:02
Теперь вопрос

Антон
01.12.2016
10:32:03
это руби чистый

Alex
01.12.2016
10:32:17
как твой интерактор будет подчищать за собой, если твой СЛЕДУЮЩИЙ В ЦЕПОЧКЕ интерактор провалился?

Антон
01.12.2016
10:32:52

Alex
01.12.2016
10:33:06
ensure находится внутри интерактора который уже отработал
без ошибок
следующий интерактор в цепочке свалилсчя
теперь надо отменить то что сделал первый интерактор, как ты это сделаешь?

Google

Антон
01.12.2016
10:33:31
значит ensure сделаю в блоке вызова множества интеракторов

Alex
01.12.2016
10:34:09
интерактор принимает файл на заливание например ...

Антон
01.12.2016
10:34:17

Alex
01.12.2016
10:34:41
у тебя уже отработал интерактор .... транзакции отменяют стейт только базы данных а не приложения ...

Антон
01.12.2016
10:35:22
мне ничего не мешает написать метод отката
a.process
b.process
a.rollback if b.invalid?

Alex
01.12.2016
10:36:05
вручную? в каждом контроллере который будет эту цепочку юзать?

Антон
01.12.2016
10:36:30
1) не буду я это в контроллере писать
2) а так да, почему нет?

Alex
01.12.2016
10:36:43
а где ты это будешь писать?

Антон
01.12.2016
10:36:55

Alex
01.12.2016
10:37:12
Редкий случай, но бывает. Значение в кэше еще может быть.
ActiveJob отменить ...

Mikhail
01.12.2016
10:38:10

Антон
01.12.2016
10:38:59
что такое PORO? :)

Mikhail
01.12.2016
10:39:04
На месте топчитесь елы палы. Это еще один подход не более. Я тоже юзаю гем, и логику складываю в интеракторы. В Сервисах чтонибудь третье стороннее лежит
плейн руби обджект
Давай еще на эту тему потанцуем на месте

Антон
01.12.2016
10:39:57
всмысле?

Google

Alex
01.12.2016
10:40:01
надо было на примере просто разбирать, но мне лень.

Mikhail
01.12.2016
10:40:16
Да не на самом деле он все тоже самое пишет ручками
Антон за рубишный код и лишняя либа, это лишняя непонятка

Антон
01.12.2016
10:40:35
ненене, одна большая разница
я не пложу сущности без необходимости

Mikhail
01.12.2016
10:41:32
У тебя 2 сервиса и сервис органайзер, который соберет те же сервисы. В интеракторах также, только ручками не надо это все писать

Alex
01.12.2016
10:41:34
да и без рельс пишешь все.

Антон
01.12.2016
10:42:06

Alex
01.12.2016
10:42:17
Ну я не понимаю твоего "давай я все ручками напишу"

Mikhail
01.12.2016
10:42:18
Нравится пиши, я юзаю интеракторы и видел организацию органайзера(последовательного выполнения интеракторов) только в рамках гема

Антон
01.12.2016
10:42:27

Alex
01.12.2016
10:42:31
смысл в этом когда можно меньше писать и использовать готовый гем который уже могут знать другие разработчики?

Mikhail
01.12.2016
10:42:47
еее выходим из цикла

Alex
01.12.2016
10:42:47
Мы уже выяснили что ты много лишнего кода пишешь, это 2 строчки в dev и 22 в тестах

Антон
01.12.2016
10:42:51

Mikhail
01.12.2016
10:43:04

Alex
01.12.2016
10:43:17

Антон
01.12.2016
10:43:33

Alex
01.12.2016
10:43:47
а кто у тебя в цепочке за предыдущим ингтерактором подчищать будет?

Антон
01.12.2016
10:44:13
сервис дергающий цепочку

Google

Mikhail
01.12.2016
10:44:21
break if Alex.opinion != Anton.opinion
оу косяк

Alex
01.12.2016
10:44:56

Mikhail
01.12.2016
10:45:39
Я не могу тесты написать, у меня нет тз

Антон
01.12.2016
10:45:44
уже два!, гема написали на интеракторы
это вообще подохрительно
один умер?

Alex
01.12.2016
10:45:56
У них разный подход

Антон
01.12.2016
10:45:58
это маркетинг имхо

Admin
ERROR: S client not available

Mikhail
01.12.2016
10:46:13
В опенсорсе
рили?

Антон
01.12.2016
10:46:17
очередные добрые венериане написали маркетинг

Alex
01.12.2016
10:46:50
зачем rspec когда есть minitest?

Mikhail
01.12.2016
10:46:57
Добрый ныне маркетинг часы вкачивать в гемы

Антон
01.12.2016
10:47:03

Alex
01.12.2016
10:47:15

Антон
01.12.2016
10:47:19

Alex
01.12.2016
10:47:33
не знаю что тебе в post-css не нравится

Антон
01.12.2016
10:47:43

Mikhail
01.12.2016
10:47:53

Антон
01.12.2016
10:48:03

Google

Mikhail
01.12.2016
10:48:32
Это же для облегчения работы фронта
когда у тебя многоэтажные дизайны и верстка, и чтобы это было удобно юзают постцсс вроде так же

Антон
01.12.2016
10:49:03

Alex
01.12.2016
10:49:08

Mikhail
01.12.2016
10:49:17
Настраивают неделю, верстают 1 час
?

Антон
01.12.2016
10:49:31

Alex
01.12.2016
10:49:38

Mikhail
01.12.2016
10:49:39
В postcss?

Антон
01.12.2016
10:49:49

Mikhail
01.12.2016
10:49:51
а вроде как раз про реюз песня

Антон
01.12.2016
10:50:06
post-css зависит от того какие либы подключены

Mikhail
01.12.2016
10:50:18
не нужно фронтенда, с моими хромосомами все впорядке
?
На самом деле я не читал, не видел, так краем уха слышал и не собираюсь смотреть

Антон
01.12.2016
10:51:08

Alex
01.12.2016
10:51:22

Антон
01.12.2016
10:51:37
бордюр: толщина 1 колено - не может быть отраслевым стандартом :)