Size: a a a

Software Design/Architecture/Zen

2021 February 04

RT

Roman Tsikhanovich in Software Design/Architecture/Zen
Telegram Driven Development
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Konstantin
Что самое интересное, домайн как раз намного ближе к инфраструктуре в твоём приложении, чем к слою аппликейшон
ключевое тут "в твоем приложении" :)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
на тему слоев, гексагонов, ООП vs ФП рекомендую вот этот видосик от одного из моих любимых спикеров - https://www.destroyallsoftware.com/talks/boundaries

p.s. отдельно хорошо что ничего про гексагоны и слои там особо нет, но суть зачем че в какую сторону понять можно будет
источник

VG

Valentin Gerbey in Software Design/Architecture/Zen
Sergey Protko
на тему слоев, гексагонов, ООП vs ФП рекомендую вот этот видосик от одного из моих любимых спикеров - https://www.destroyallsoftware.com/talks/boundaries

p.s. отдельно хорошо что ничего про гексагоны и слои там особо нет, но суть зачем че в какую сторону понять можно будет
Поделись лучшей 5-й спикеров, по твоему мнению
источник

K

Konstantin in Software Design/Architecture/Zen
Sergey Protko
ключевое тут "в твоем приложении" :)
Хорошо подметил))
источник

N

Nikita in Software Design/Architecture/Zen
блин иногда разговоры об архитектуре и дзене напоминают разговоры софистов))
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Valentin Gerbey
Поделись лучшей 5-й спикеров, по твоему мнению
Тут скорее в порядке "приятно и занимательно послушать", а так крутых спикеров в плане контента много. Например я не включаю Nick Tune ибо он слегка скучно рассказывает... Так же не включаю "классиков" типа Фаулера и Дядю боба (последнего не оч люблю но последние пару лет у него есть занимательные видосы которые не столь категоричны а потому их приятно смотреть + мне нравится его вступления со всякими научными фактами которые немного но связаны с темой доклада)

- Udi Dahan
- Greg Young
- Gary Bernhardt
- Dave Thomas
- Sam Newman
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Allen Holub еще из тех кого я смотрю сразу как чет выходит...
источник

VG

Valentin Gerbey in Software Design/Architecture/Zen
спасибо
источник

HH

Human Human in Software Design/Architecture/Zen
Добрый день.
Обрабатываете ли вы редкие ошибки из разряда состояний гонок?
Например:
1. Ошибка ограничения бд на уникальность, например username.
2. OptimisticLockException

И как обрабатываете?

Для OptimisticLockException - можно поставить какой-нить ретрай на 3 попытки.
А ошибки нарушения констрейнта бд - тут не всегда подойдет ретрай.

Мб лучше просто забить на такие редкие кейсы?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Human Human
Добрый день.
Обрабатываете ли вы редкие ошибки из разряда состояний гонок?
Например:
1. Ошибка ограничения бд на уникальность, например username.
2. OptimisticLockException

И как обрабатываете?

Для OptimisticLockException - можно поставить какой-нить ретрай на 3 попытки.
А ошибки нарушения констрейнта бд - тут не всегда подойдет ретрай.

Мб лучше просто забить на такие редкие кейсы?
валидация на клиенте (просто отдельным запросом) отсекает 99% таких вещей а для оставшегося одного просто кидаем ошибку что не удалось - там на клиенте повторно валидация отработает и он увидит где накосячил.

Но это если воркфлоу не подразумевает гонок (эт только QA регают юзера по одному email-у одновременно с двух девайсов). Там где подразумевает (ты пытаешься купить товар который сняли с продажи) надо спрашивать у бизнеса ибо это у них во флоу гонки и надо понять кто проигрывает
источник

HH

Human Human in Software Design/Architecture/Zen
Sergey Protko
валидация на клиенте (просто отдельным запросом) отсекает 99% таких вещей а для оставшегося одного просто кидаем ошибку что не удалось - там на клиенте повторно валидация отработает и он увидит где накосячил.

Но это если воркфлоу не подразумевает гонок (эт только QA регают юзера по одному email-у одновременно с двух девайсов). Там где подразумевает (ты пытаешься купить товар который сняли с продажи) надо спрашивать у бизнеса ибо это у них во флоу гонки и надо понять кто проигрывает
Получается решение: с клиента делать повторный ретрая в случае ошибок сервера - что то такое?
Такое решение по идее увеличивает нагрузку на сервер, в случае если “что-то пошло не так”. Все будут долбиться с ретраями
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Human Human
Получается решение: с клиента делать повторный ретрая в случае ошибок сервера - что то такое?
Такое решение по идее увеличивает нагрузку на сервер, в случае если “что-то пошло не так”. Все будут долбиться с ретраями
такие переживания могут быть оправданы если вероятность конфликта по данным высокая. А если она высокая то надо пересматривать подходы
источник

SP

Sergey Protko in Software Design/Architecture/Zen
источник

SP

Sergey Protko in Software Design/Architecture/Zen
вот можешь видосик на эту тему глянуть) там как раз про гонки
источник

HH

Human Human in Software Design/Architecture/Zen
Sergey Protko
такие переживания могут быть оправданы если вероятность конфликта по данным высокая. А если она высокая то надо пересматривать подходы
Спасибо, посмотрю. Я вообще джуниор и для собеса готовлюсь - делаю один pet project. Хочу понять, что ответить если зададут вопрос аля “Почему ты не обрабатываешь эксепшены конфликта бд”
источник

SP

Sergey Protko in Software Design/Architecture/Zen
"а зачем?"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну как, как минимум желательно дать клиенту понять что пошло не так (409 а не 500)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
для этого исключения лучше хэндлить
источник

HH

Human Human in Software Design/Architecture/Zen
Sergey Protko
ну как, как минимум желательно дать клиенту понять что пошло не так (409 а не 500)
Ну 500 - да. + получается нужно как то разбирать SQL ошибки, чтобы в описании дать нормальный ответ.
источник