Hog
Vladislav
https://twitter.com/ploeh/status/1122932481924247554?s=12
Roman
столько говна на экран намазать это конечно талант нужен
Анна
Vladyslav
Q: Can we rename Command Handler to IBusinessDomainEventFactoryProxyImplProvider?
A: Awesome question, thanks for that! Absolutely not.
Roman
готовлю презентаху для коллег, набросал такой код, чтоб показать мощь доменного моделирования. Бахните ревью плз:
https://gist.github.com/rliman/3b5cc2e5dc25f60074850083763bad8f
Roman
Ayrat
поэтому может быть бизнес овнерам и насрать как у них код устроен, но сама сфера притягивает большое кол-во фп дротов
Ayrat
Ayrat
одно дело тебе надо графики построить для статеечки или там посчитать что-то по-бырому
Ayrat
А другое, тебе надо рисовать доменную модель для какой-нибудь биржи
Ayrat
питоном там не пахло
x
ну там у них кресты и quantLib
Roman
Roman
И жава
x
питона и жавы много, да
Ayrat
Ну я видел предложения на хаскеля в какие-то банки на линкеде в UK
Ayrat
помимо прочих
Roman
Roman
В других про хаскель не слышал
Roman
Vladislav
Roman
Roman
я понимаю, но не вижу, что в этом плохого
Roman
То есть главное — не дать создать невалидное состояние же
Roman
А каким образом ты создашь валидное — дело десятое
Vladislav
Наверно нет смысла если оно так
Roman
Roman
Vladislav
как позволяет?
Прости, я тут походу зря доебался. С телефона подумал что у кейсов значения есть
Vladislav
Тогда нет смысла
Roman
👌
Vasily
@atsapura не совсем понял прикол с visa и mastercard
Vasily
Что будет в случае unionpay?
Roman
ошибка! Я не знаю всех провайдеров, бахнул для наглядности. Но могу добавить и юнион пей!
Vasily
Нужен просто номер карты по алгоритму луна
Roman
думаешь, надо для презентации?
Vasily
Ну пока код несколько оторван от реальности
Aleksandr
Aleksandr
Датасаентисты странные люди
Aleksandr
Не в обиду оных
Vasily
Vladislav
а R provider только для полного фреймворка?
Aleksandr
Да
Shub
Shub
есть вообще наблюдение такое: если в коде появляются валидаторы, особенно валидаторы на 15 строк и более (не говоря уже про целые модули валидаторов) - значит есть проблема либо на стадии дизайна, либо на стадии определения типов
Roman
Hog
я ещё не понял ботву с чеками
Hog
а тип карты кодируется в номере
Roman
Daniil
там же по сути конвертация из DTO в доменные типы, как без этого обойтись?
Vasily
type CreditCardInfo =
{ Number: DigitString
Provider: CardProvider
Name: LetterString
ExpirationDate: (uint16*uint16) } Пиздец начинается тут
Roman
Hog
а что там?
Ну, если расплачиваешься чеком, то там надо раутинг + аккаунт + сумма.
Hog
не понял про остальное
Roman
блять, видимо надо было не финансовую область
Hog
x
Hog
Roman
вообще, я хотел ревью кода, а не моих знаний финансовой сферы)
x
А, не заметил )
Hog
Hog
И убери эту французскую хуергу :) Check оно 😊
Roman
ребят, это не продакшн код. Кроме того, некоторые компании сами не процессят платежи по кредиткам, и полного номера они не видят вообще, в целях безопасности
Hog
а :) бритиш
Hog
Roman
что именно?
Shub
Shub
и совершенно нормально, когда пользовательский ввод не парсится