Size: a a a

2020 August 26

DP

Denis Pavlyuchenko in pro.jvm
источник

D

Dmitry in pro.jvm
я вот думаю, что мешало доюавить геттеры
источник

E

Evgeniy ♎️ in pro.jvm
Igor Komarov
Какая-бы ни была классная твоя архитектура и красивый код, ты автоматически получаешь лейбл "****** криворукий", если выходной продукт неюзабелен в ущерб ей.
тоже самое относится к собственно и коду
если сделан какой-то кусочек, который ты продвигаешь в проекте как клёвый и так надо делать, что типо это удобно(тебе) или правильно, а по факту никто не пользуется твоим решением - значит не так уж и хорошо было это решение
источник

IK

Igor Komarov in pro.jvm
Evgeniy ♎️
тоже самое относится к собственно и коду
если сделан какой-то кусочек, который ты продвигаешь в проекте как клёвый и так надо делать, что типо это удобно(тебе) или правильно, а по факту никто не пользуется твоим решением - значит не так уж и хорошо было это решение
В коде это не так критично. В теории ты можешь писать говнокод, до тех  пор пока он выполняет свою задачу хорошо с точки зрения продукта (привет приложению вконтакте которое было пиздецом с архитектурной точки зрения долгое время, если мне память не изменяет)
источник

h

humanoid in pro.jvm
Alexei Strug
Всем привет, кто нибудь использовал state-machine для реализации Saga-pattern? (есть вопрос про компенсирующую транкзакцию). Или может кто посоветует какой-нибудь фреймворк или библиотеку для реализации данного паттерна?
Задавай вопрос)
источник

E

Evgeniy ♎️ in pro.jvm
Igor Komarov
В коде это не так критично. В теории ты можешь писать говнокод, до тех  пор пока он выполняет свою задачу хорошо с точки зрения продукта (привет приложению вконтакте которое было пиздецом с архитектурной точки зрения долгое время, если мне память не изменяет)
ну если такой хернёй занимается лид/архитектор и все страдают - то критично)
а вообще конечно важно выкатывать решение чтоб юзер не страдал
источник

AS

Alexei Strug in pro.jvm
humanoid
Задавай вопрос)
ну если по стейт машине, у меня возникает какая-то критическая ситуация, я отправляю евент как фейл, стейт машина его ловит и передает на действие компенсирующей транкзакции, тут собственно и вопрос, как откатить все, что было сделано до данного фейла?
источник

h

humanoid in pro.jvm
Alexei Strug
ну если по стейт машине, у меня возникает какая-то критическая ситуация, я отправляю евент как фейл, стейт машина его ловит и передает на действие компенсирующей транкзакции, тут собственно и вопрос, как откатить все, что было сделано до данного фейла?
Что значит “отправляю евент как фейл”. Сага и есть то, что откатывает бизнес-транзакцию. Тут может быть что угодно. Она может например какие то ивенты заэмитить
источник

AS

Alexei Strug in pro.jvm
humanoid
Что значит “отправляю евент как фейл”. Сага и есть то, что откатывает бизнес-транзакцию. Тут может быть что угодно. Она может например какие то ивенты заэмитить
смотри, в стейт машине описаны разные пути развития, допустим от какого-то сервиса приходит фейл валидации денег на счету или что-либо еще...соотвественно ты создаешь евент на обработку данного фейла в стейт машине, покажу отрывок
источник

AS

Alexei Strug in pro.jvm
в группе нельзя выслать скрин) выслал в лс, на том скрине есть евент фейла, соотвественно передача управления идет в другой класс, который и должен вроде как обработать роллбек на все остальные шаги или я как-то не правильно это понимаю, ролбек будет только в том случае если ничего не вернется (допустим сервис упал) или как?
источник

h

humanoid in pro.jvm
Alexei Strug
в группе нельзя выслать скрин) выслал в лс, на том скрине есть евент фейла, соотвественно передача управления идет в другой класс, который и должен вроде как обработать роллбек на все остальные шаги или я как-то не правильно это понимаю, ролбек будет только в том случае если ничего не вернется (допустим сервис упал) или как?
Вообще сага это про асинхронность. Сага обычно просто принимает сообщения и эмитить сообщения асинхронно. Если зафейлилось - сообщение посылается снова или нет, смотря как настроить.

Ну например создается сага “ВалидацияДенег”
Далее сага может например отослать сообщение “ПровалидироватьДеньгиНаСчету”
Позже приходит сообщение в сагу - “ВиладацияДенегНаСчетуЗафейлилась”. Сага может например выпустить сообщение “Завершить операцию”

ps Я не знаю твоего кейса
источник

AS

Alexei Strug in pro.jvm
humanoid
Вообще сага это про асинхронность. Сага обычно просто принимает сообщения и эмитить сообщения асинхронно. Если зафейлилось - сообщение посылается снова или нет, смотря как настроить.

Ну например создается сага “ВалидацияДенег”
Далее сага может например отослать сообщение “ПровалидироватьДеньгиНаСчету”
Позже приходит сообщение в сагу - “ВиладацияДенегНаСчетуЗафейлилась”. Сага может например выпустить сообщение “Завершить операцию”

ps Я не знаю твоего кейса
ну вот как ты написал это и есть, особенно про фейл описывает вот это “ВиладацияДенегНаСчетуЗафейлилась”. Сага может например выпустить сообщение “Завершить операцию”, ловит стейт машин и передает в action, как я понимаю, там просто надо делать какую-то обработку, а-ля отправка какого-то сообщения для пользователя или тому подобное, верно?
источник

h

humanoid in pro.jvm
Alexei Strug
ну вот как ты написал это и есть, особенно про фейл описывает вот это “ВиладацияДенегНаСчетуЗафейлилась”. Сага может например выпустить сообщение “Завершить операцию”, ловит стейт машин и передает в action, как я понимаю, там просто надо делать какую-то обработку, а-ля отправка какого-то сообщения для пользователя или тому подобное, верно?
“ловит стейт машин и передает в action, как я понимаю, там просто надо делать какую-то обработку, а-ля отправка какого-то сообщения для пользователя или тому подобное, верно?”
вот это не понятно. Стейт машина слишком общее понятие
источник

AS

Alexei Strug in pro.jvm
humanoid
“ловит стейт машин и передает в action, как я понимаю, там просто надо делать какую-то обработку, а-ля отправка какого-то сообщения для пользователя или тому подобное, верно?”
вот это не понятно. Стейт машина слишком общее понятие
ну как на скриншоте, который я тебе высылал, от сервиса проверки денег допустим, вернулось сообщение, что фейл, соответсвенно стейт VALIDATION_FAILED, этот стейт ловится     .action(validationFailureAction), как я понимаю там же должен происходит роллбек всех прошлых действий, которые были созданы до данного шага, верно?
источник

h

humanoid in pro.jvm
Alexei Strug
ну как на скриншоте, который я тебе высылал, от сервиса проверки денег допустим, вернулось сообщение, что фейл, соответсвенно стейт VALIDATION_FAILED, этот стейт ловится     .action(validationFailureAction), как я понимаю там же должен происходит роллбек всех прошлых действий, которые были созданы до данного шага, верно?
Ну это уже деталь твоей конкретно реализации саги - это не важно.
Как и что ты будешь откатывать не так важно. “Откат” тоже общее понятие. Ты например можешь выслать людям сообщение с кодом на подарок в случае какого то бизнес фейла.
источник

AS

Alexei Strug in pro.jvm
humanoid
Ну это уже деталь твоей конкретно реализации саги - это не важно.
Как и что ты будешь откатывать не так важно. “Откат” тоже общее понятие. Ты например можешь выслать людям сообщение с кодом на подарок в случае какого то бизнес фейла.
вроде как понял что тут требуется сделать, спасибо за помощь и уделенное время!
источник
2020 August 27

T

Tim Ami in pro.jvm
Добрый день, подскажите как в AOP указать pointcut кастомной аннотацией? Раньше я просто в аспекте указывал аннотацией тип совета с указанием поинтката, а мне поставили задачу чтобы прямо в коде помечать аннотацией методы к которым надо совет применять.
источник

WT

Waldemar Tsiamruk in pro.jvm
Сделайте свою аннотацию
источник

WT

Waldemar Tsiamruk in pro.jvm
И ее обработчик )
источник

WT

Waldemar Tsiamruk in pro.jvm
Там в доке все есть
источник