Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 September 29

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
Alex Iv
Я вот не совсем понимаю тему за клаву - может просто носить с собой клаву внешнюю? И ноут можно держать подальше, например на подставке. 🙂
а вот еще: я за клаву заплатил!
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
Alex Iv
Я вот не совсем понимаю тему за клаву - может просто носить с собой клаву внешнюю? И ноут можно держать подальше, например на подставке. 🙂
неудобно же
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
так у тебя руки на клаве, большие пальцы над тачпадом
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
я щас сижу в кресле, через 15 минут на балконе, через 20 минут пролежни в диване генерю, через пол часа в ванной в горячей
это не весь список
в ванной можно класть ее в пакет и под водой печатать, рукам так точно удобнее будет ☝️🤔
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Sergii Serogin
так у тебя руки на клаве, большие пальцы над тачпадом
я все время ими задеваю и сбиваю инпут, поэтому видимо эта схема с внешней клавой + vim мне удобна, только сейчас понял 😮
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
для вима да, тачпад не нужен
источник

Т

Тенпеннай in Ruby, Rails, Hanami | dry-rb
а вы шо, большими пальцами тачпадом рулите?
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
когда как, если недалеко, то да
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
если далеко - указательным
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
Sergii Serogin
когда как, если недалеко, то да
! не думал никогда - удобно же
источник

AG

Alexander G in Ruby, Rails, Hanami | dry-rb
Anton Davydov
я не очень понял при чем тут сбор агрегата и сайдкик
Ну вот из недавнего из работы.
Пользователь может записать ребенка на занятия.

Это действие обернуто в транзакцию, потому что надо соблюсти консистентность.
 - запись о ребенке
 - уменьшить количество свободных мест

После транзакции отправляется письмо по почте юзеру и сообщение в слэк о новой записи.
Это все завернуто в "операцию" - RecordUser

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

Потом добавились платные занятия. Оплата происходила через виджет клаудпейментс, мы получали колбэк от него и вызывали то же самое действие, реюзали RecordUser.

Потом добавились промокоды и схема оплаты усложнилась - надо было проверять промокод и применять его при оплате.

В итоге появилcя сервис Pay.
Он пытался применить промокод и, если после применения цена становилась нулевой, то сразу записывал ребенка на занятие.
В отношении промокодов тоже надо было соблюсти некоторые условия. Например, промокод можно применить ограниченное число раз.
Поэтому операция по применению промокода тоже оборачивается в транзакцию.

transaction do
 # пересчитать стоимость
 # записать применение промокода
 # вызвать RecordUser
     #.. а тут внутри своя транзакция и уже уходят нотификации
end
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
ну я вообще в захвате от тачпада был, очень у них он удобный вышел
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Alexander G
Ну вот из недавнего из работы.
Пользователь может записать ребенка на занятия.

Это действие обернуто в транзакцию, потому что надо соблюсти консистентность.
 - запись о ребенке
 - уменьшить количество свободных мест

После транзакции отправляется письмо по почте юзеру и сообщение в слэк о новой записи.
Это все завернуто в "операцию" - RecordUser

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

Потом добавились платные занятия. Оплата происходила через виджет клаудпейментс, мы получали колбэк от него и вызывали то же самое действие, реюзали RecordUser.

Потом добавились промокоды и схема оплаты усложнилась - надо было проверять промокод и применять его при оплате.

В итоге появилcя сервис Pay.
Он пытался применить промокод и, если после применения цена становилась нулевой, то сразу записывал ребенка на занятие.
В отношении промокодов тоже надо было соблюсти некоторые условия. Например, промокод можно применить ограниченное число раз.
Поэтому операция по применению промокода тоже оборачивается в транзакцию.

transaction do
 # пересчитать стоимость
 # записать применение промокода
 # вызвать RecordUser
     #.. а тут внутри своя транзакция и уже уходят нотификации
end
Тут нужно стейт машину прикручивать, транзакция - хорошее решение другой проблемы 🤔 имхо
источник

AG

Alexander G in Ruby, Rails, Hanami | dry-rb
Alex Iv
Тут нужно стейт машину прикручивать, транзакция - хорошее решение другой проблемы 🤔 имхо
к чему ее прикрутить?
источник

Т

Тенпеннай in Ruby, Rails, Hanami | dry-rb
Alex Iv
Тут нужно стейт машину прикручивать, транзакция - хорошее решение другой проблемы 🤔 имхо
а как она консистентность сохранит?
источник

UI

Uncle Iroh in Ruby, Rails, Hanami | dry-rb
Rustam Abdul
вроде в новых
так в новых уже не бабочка же. у меня новая 17-шка, клавиатура намного лучше чем в 15-шке двухлетней давности (которую пришлось заменять, да)
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Процесс записи доволно сложный, и это именно процесс, с изменениями состояния. Консистентность она не сохранит, я прото, что все валить в одну транзакцию в этом случае - не очень удобно.
источник

RA

Rustam Abdul in Ruby, Rails, Hanami | dry-rb
Uncle Iroh
так в новых уже не бабочка же. у меня новая 17-шка, клавиатура намного лучше чем в 15-шке двухлетней давности (которую пришлось заменять, да)
мой косяк
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
идем на оплату - лочим место, получили оплату - делаем нужные записи в транзакции итп
источник

AG

Alexander G in Ruby, Rails, Hanami | dry-rb
Alex Iv
Процесс записи доволно сложный, и это именно процесс, с изменениями состояния. Консистентность она не сохранит, я прото, что все валить в одну транзакцию в этом случае - не очень удобно.
если упростить, то вот что получается прмерно так:

- после записи ребенка на занятие надо сделать что-то через сайдкик (уведомить всех заинтересованных)
- запись ребенка может происходить в разных местах:
 - на бесплатные занятия - сразу по кнопке
 - на платные - после колбэка
 - из админки по звонку пользователя

Поэтому запись и отправка уведомлений собраны вместе в один класс-операцию.
При этом может так быть, что вызов этой "операции" произойдет из транзакции.
источник