Size: a a a

2018 February 15

SK

Sergey Kapralov in JUG NN
Vlad K
мутабельность не обязательно, просто сделать иммутабельную структуру в джаве, с методами для изменения-клонирования, вроде бы нетривиально(либо я не в курсе всех новинок)
Тут еще вопрос - а когда вообще такая типа "персистентная" структура нужна на практике (если я правильно понял коммент).
источник

VK

Vlad K in JUG NN
бывает нужен мутабельный контекст между N компонент, имитация пайплайна
источник

SK

Sergey Kapralov in JUG NN
Vladislav Gasanov
Ну сейчас почти весь бойлерплейн код убрать можно с lombok
Дело не в бойлерплейте, а в связности
источник

SK

Sergey Kapralov in JUG NN
Vlad K
бывает нужен мутабельный контекст между N компонент, имитация пайплайна
Например?
источник

SK

Sergey Kapralov in JUG NN
Не - я как бы не утверждаю что мутабельность это все - пиздец как плохо
источник

SK

Sergey Kapralov in JUG NN
Я утверждаю что использование сеттеров на мутабельной DTOшке - это большой риск скаплиться темпорально.
источник

VK

Vlad K in JUG NN
пример пайпа, где результаты-аргументы сложнее примитивного типа?

Юзер решил купить товар, которые он положил в корзину неделю назад

Компонент один считает, изменилась ли цена
Компонент 2 считает потенциальную скидку, если цена изменилась в верхнюю сторону
Компонент 3 анализирует работу первых двух и ищет варианты по меньшей цене
В результате сервис возвращает результат работы всех трех компонент
источник

VK

Vlad K in JUG NN
это очень упрощенный пример, часто где-то между 2-3 нужно еще крон джобу запустить, которая тоже пример все эти вещи в себя и пошлет юзеру через неделю емайл с доп скидкой если он раздумает покупать
источник

VK

Vlad K in JUG NN
ну и так далее
источник

SK

Sergey Kapralov in JUG NN
Ищет варианты среди чего? Сорри, я просто не сведущ в предметной области в интернет-коммерции
источник

VK

Vlad K in JUG NN
варианты - схожие товары
источник

VK

Vlad K in JUG NN
тут просто логический контекст очень здоровый
источник

VK

Vlad K in JUG NN
выгребать дофига данных и потому их мусолить так и сяк, догребать еще данных, и еще мусолить
источник

VK

Vlad K in JUG NN
и потом еще все аггрегировать в красивый вью
источник

SK

Sergey Kapralov in JUG NN
Ну если без компонентов - суть процесса в чем: в том чтобы сформировать список альтернатив для того что у юзера лежит в корзине, среди которых может быть то же предложение со скидкой?
источник

VK

Vlad K in JUG NN
не только
1. Сравнить цену на момент заказа и на момент чекауте
2. Узреть разницу
3. Если разница небольшая, то можно простить
4. Если большая, то можно ее частично компенсировать(или нельзя)
5. Если большая, то показать альтернативы
6. Завести таймер, что если юзер не купит, то прислать ему письмо с бОльшей скидкой через неделю
7. Залогировать кейс в аналитику
8. ОТрендерить view/json
источник

SK

Sergey Kapralov in JUG NN
А, ок. И как предлагается решать это через мутируемую DTO?
источник

VK

Vlad K in JUG NN
смысл в том, что последующие шаги хотят результаты предыдущих так или иначе и в тех или иных комбинациях
источник

VK

Vlad K in JUG NN
то есть пункт 3 может хотеть результаты 1 и 2
источник

VK

Vlad K in JUG NN
пункт 6 может хотеть результаты 1, 2, 4
источник